Wie ist eigentlich eine BMP aufgebaut?
Hat vielleicht irgenjemand schonmal was zum Hand-Auslesen geschrieben?
Oder hat irgendjemand einen Link zu einer Seite wo das beschrieben wird?
KeyKon
BMP-Aufbau
- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
BMP-Aufbau
(\/) (°,,,°) (\/)
Hier: http://www.runicsoft.com/bmp.php#chapter3
Und hier: http://www.fastgraph.com/help/bmp_header_format.html
Einen Loader hab ich dafür auch, allerdings nur in C++.
Und hier: http://www.fastgraph.com/help/bmp_header_format.html
Einen Loader hab ich dafür auch, allerdings nur in C++.
bei formatfragen lohnt sich auch immer mal ein blick auf www.wotsit.org
- KeyKon
- Beiträge: 1412
- Registriert: 10.09.2004 20:51
- Computerausstattung: Laptop: i5 2,8 Ghz, 16GB DDR3 RAM, GeForce 555GT 2GB VRAM
PC: i7 4,3 Ghz, 32GB DDR3 RAM, GeForce 680 GTX 4GB VRAM
Win10 x64 Home/Prof
PB 5.30 (64bit) - Wohnort: Ansbach
- Kontaktdaten:
Ich hab jetzt mal einen kleinen Loader geschrieben:
Is bestimmt nich die schnellste möglichkeit, aber es funktioniert!
KeyKon
Code: Alles auswählen
If OpenFile(0,OpenFileRequester("Öffnen","","BMP|*.bmp|All|*.*",0)) = 0
Debug "Konnte nich öffnen!"
End
EndIf
If ReadWord() <> 19778 ;"BM"
Debug "Kein BMP File!"
End
EndIf
Debug "Size: "+Str(ReadLong())+" Byte"
If ReadWord() <> 0 Or ReadWord() <> 0
Debug "Error! bfReserved isn't 0"
End
EndIf
Debug "Size of Headers: "+Str(ReadLong())+" Bytes" ; 54
Debug "Size of the Structure: "+Str(ReadLong())+" Bytes" ; 40
XSize = ReadLong()
YSize = ReadLong()
Debug "Image Width: "+Str(XSize)+" Pixels"
Debug "Image Height: "+Str(YSize)+" Pixels"
Debug "BitPlanes: "+Str(ReadWord())
Debug "Resolution: "+Str(ReadWord())
Debug "Compression: "+Str(ReadLong())
Debug "Size of Image: "+Str(ReadLong())
Debug "Pixels per Meter X: "+Str(ReadLong())
Debug "Pixels per Meter Y: "+Str(ReadLong())
Debug "Colors Used: "+Str(ReadLong())
Debug "Important Colors: "+Str(ReadLong())
CreateImage(0,XSize,YSize)
; Structure prgb
; re.b
; gr.b
; bl.b
; EndStructure
; Dim Pic.prgb(XSize-1,YSize-1)
StartDrawing(ImageOutput())
For y = 0 To YSize-1
For x = 0 To XSize-1
Blue = ReadByte()&$FF
Green = ReadByte()&$FF
Red = ReadByte()&$FF
Plot(x,YSize-y-1,RGB(Red,Green,Blue))
; Pic(x,YSize-y-1)\re = Red-128
; Pic(x,YSize-y-1)\gr = Green-128
; Pic(x,YSize-y-1)\bl = Blue-128
; Debug Red
; Debug Green
; Debug Blue
Next
Next
StopDrawing()
If SaveImage(0,"Test.bmp") = 0
Debug "Fehler beim speichern!"
End
EndIf
Debug "Fertig"KeyKon
Zuletzt geändert von KeyKon am 22.12.2005 02:07, insgesamt 1-mal geändert.
(\/) (°,,,°) (\/)
> es funktioniert!
Bei mir zumindest nicht ganz. Ich habe keine Ahnung wie dein Prozessor
das sieht aber meiner würde bei [c]Blue+256 [/c] am liebsten aus dem Sockel
springen und sich aus dem Fenster werfen.
Die IFs bitte komplett weg löschen und dafür die Bytes sofort so einlesen:
Im übrigen: Danke für den Code
.
Bei mir zumindest nicht ganz. Ich habe keine Ahnung wie dein Prozessor
das sieht aber meiner würde bei [c]Blue+256 [/c] am liebsten aus dem Sockel
springen und sich aus dem Fenster werfen.
Die IFs bitte komplett weg löschen und dafür die Bytes sofort so einlesen:
Code: Alles auswählen
Blue = ReadByte()&$FF
Green = ReadByte()&$FF
Red = ReadByte()&$FF