Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Stefan
Anmeldungsdatum: 17.09.2004 Beiträge: 22
|
Verfasst am: 26.09.2004, 13:38 Titel: BMP laden |
|
|
Ich hatte mal ein Programm geschrieben, mit dem man 24-Bit-BMP-Bilder laden und ausgeben konnte. Damals hatte es herforragend funktioniert. Als ich jetzt wieder etwas damit machen wollte, gab es plötzlich Probleme.
Ich konnte den Fehler eingrenzen. Am Ende jeder Zeile stehen ja noch ein paar Füllbytes. Mit der folgenden Formel hatte ich berechnet wieviele Bytes das sind:
AnzahlFuellByte = 4 - ((Header.Breite * 3) MOD 4)
Diese Formel muß falsch sein, denn wenn ich den Wert der Variablen änderte duch ausprobieren, z.B. AnzahlFuellByte = 3 dann wurde plötzlich das Bild richtig angezeigt.
Gibt es hier jemanden, der sich damit auskennt, und weiß wie die Formal richtig lautet? |
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
|
Stefan
Anmeldungsdatum: 17.09.2004 Beiträge: 22
|
Verfasst am: 26.09.2004, 15:44 Titel: Fehler gefunden |
|
|
Danke für die Antwort.
Den Fehler habe ich jetzt zum Glück finden und beheben können. |
|
Nach oben |
|
|
Stefan
Anmeldungsdatum: 17.09.2004 Beiträge: 22
|
Verfasst am: 10.12.2004, 16:45 Titel: BMP erstellen |
|
|
Ich habe jetzt ein sehr ähnliches Problem, deshalb schreibe ich es mal hier dazu. Diesmal will ich eine BMP-Datei mit Qbasic erstellen. Hier mal der Dateiheader:
Code: | TYPE DateiHeader ' 54 Bayt Größe
DateiTyp AS INTEGER ' Signatur "BM" (0x4D42); als Dezimalzahl:19778
DateiGroesse AS LONG ' Datei Größe
Reserved AS LONG ' Reserviert (normalerweise = 0)
BildOffset AS LONG ' Offset, ab dem die Bilddaten gespeichert sind
'Beginn Info-Block
InfoBlockGroesse AS LONG ' Größe des Info-Headers in Byte (muß =40 sein)
Breite AS LONG ' Breite des Bildes in Pixeln
Hoehe AS LONG ' Höhe des Bildes in Pixeln
Farbebenen AS INTEGER ' Farbebenen (muß =1 sein)
BPP AS INTEGER ' Bits Pro Pixel (also 1, 4 ,8 oder 24)
Kompression AS LONG ' Typ der Komprimierung (normalerweise =0)
BitmapBereich AS LONG ' Größe des Bitmap-Datenbereiches in Byte
ResX AS LONG ' horizontale Auflösung
ResY AS LONG ' vertikale Auflösung
FarbenBenutzt AS LONG ' Zahl der benutzten Farben (normalerweise =0)
FarbenWichtig AS LONG ' Zahl der wichtigen Farben (normalerweise =0)
END TYPE |
Leider kann ich mit den beiden Werten für die Auflösung ResX und ResY nichts anfangen, was geben diese Zahlen an? Scheinbar schreibt Paint immer 3780 für beide Werte da rein. |
|
Nach oben |
|
|
Mecki Igel
Anmeldungsdatum: 10.09.2004 Beiträge: 985 Wohnort: Niederbayern
|
|
Nach oben |
|
|
dreael Administrator
Anmeldungsdatum: 10.09.2004 Beiträge: 2507 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
|
|