bmp zu data

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

rene_

Betreff: bmp zu data

BeitragSo, Aug 15, 2004 13:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Gibt es ein Programm mit dem man bmp-Bilder zu data-Zeilen konvertieren kann ?
 

Apocalyptic

BeitragSo, Aug 15, 2004 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Selber schreiben? Wink

Entweder mit dem Bmp Decoder im Codearchiv oder mit Readpixelfast (zur Not mit GetColor)

Am Anfang einfach die Breite und Höhe des Bildes auslesen und notieren, und dann die rgb-Werte Pixel für Pixel auslesen und in der Form "Data r1,g1,b1,r2,g2,b2,..." oder "Data rgb1,rgb2,..." in eine Datei schreiben (mit der Onlinehilfe auch für Anfänger kein Problem, zur Not auf schnelle Pixelbefehle verzichten und erst mal alles mit Getcolor und Plot machen). Beim Laden eben wieder die Pixelinformationen auslesen und in ein Bild schreiben.

Aber Data als Bmp-Ersatz empfiehlt sich - wenn überhaupt - nur für kleine Bilder, da sonst die Exe unnötig groß wird.
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Hubsi

BeitragSo, Aug 15, 2004 14:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Oder solch lästige Arbeiten von der VisualBlitz IDE erledigen lassen Wink
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Aug 15, 2004 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
oder selber coden wie ich es gemacht habe, habe aber jetzt keine zeit das rauszusuchen!
so habs gefunden....
einfach mal testenCode: [AUSKLAPPEN]
Graphics 800,600
Create_include_image("Memory.Bmp")
WaitKey()
End
Function Create_include_image(image$)
bild  =  LoadImage (image$)
If bild = 0 Then RuntimeError "Bild konnte nicht geladen werden!"
DrawBlock bild ,200,200
Print " Variable des Bildhandles: "
B_Handle$ = Input$()
;Bild in Banks speichern;-----------------------------------------------------
      Bytes = ImageWidth(Bild)*ImageHeight(Bild)*4
      Banks = CreateBank(Bytes)
      SetBuffer  ImageBuffer (bild)
      LockBuffer ImageBuffer (bild)
         For x = 0 To ImageWidth (bild)-1
         For y = 0 To ImageHeight(bild)-1
            PokeInt Banks,z,ReadPixelFast(x,y)
            z = z + 4
         Next
         Next
      UnlockBuffer ImageBuffer(bild)   
      SetBuffer BackBuffer ()
;create include datei ;-----------------------------------------------------
file = WriteFile("Datas_Bild_"+ B_Handle$+".bb")
WriteLine file,(";Include "+Chr(34)+ "Datas_Bild_"+ B_Handle$+".bb"+Chr(34))
WriteLine file,("restore Datas_Bild_" + B_Handle$  )
WriteLine file,("Read Bild_X% ")
WriteLine file,("Read Bild_Y% ")
WriteLine file,( B_Handle$+" = CreateImage(Bild_X%,Bild_Y%)")
WriteLine file,( "SetBuffer ImageBuffer("+B_Handle$+")")
WriteLine file,( "LockBuffer ImageBuffer("+B_Handle$+")")
WriteLine file,( "   For ppx = 0 To Bild_X -1")
WriteLine file,( "   For ppy = 0 To Bild_Y -1")
WriteLine file,( "      Read Farbe")
WriteLine file,( "      WritePixelFast ppx,ppy,Farbe")   
WriteLine file,( "   Next")
WriteLine file,( "   Next")
WriteLine file,( "UnlockBuffer ImageBuffer("+B_Handle$+")")
WriteLine file,( "SetBuffer BackBuffer()")
WriteLine file,(".Datas_Bild_" + B_Handle$)
Bild_X = ImageWidth (bild)
Bild_Y = ImageHeight(bild)
WriteLine file ,("   Data " +   Bild_X  + ", "+ Bild_Y  )
   For z = 0 To Bytes-4  Step 4
   If Dummy$ = "" Then Dummy$ = "Data "
      a$ = Hex$(PeekInt(Banks,z))
      a$ = Right(a$,6)
      While Left(a$,1)= 0 a$ = Right(a$,(Len(a$)-1)) Wend
      a$ = "$"+ a$
      If Dummy$ = "Data " Then
            dummy$ = dummy$ +a$
      Else
         dummy$ = dummy$ + "," +a$
      End If
      If Len (Dummy$) >100 Then
       WriteLine (file,Dummy$)
       Dummy$= ""
      End If
   Next
   WriteLine (file,Dummy$)
   CloseFile (file)
   FreeImage (Bild)
Cls
Print "Datei >Datas_File_"+ B_Handle$+".bb<"+ " wurde erstellt"
Print "Ordner = " +CurrentDir() 
End Function
[BB2D | BB3D | BB+]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group