www.mikrocontroller.net

Forum: PC-Programmierung Datenformat einer BMP-Datei


Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte eine BMP-Datei mit 24bit und einer Größe von 116 x 86 Pixeln 
einlesen.
Die Datei hat eine Größe von 30214 Byte.
Der Header hat 54 Byte.
Die Bilddaten sind 29928 Byte (116 x 86 x 3).
Es bleiben nun noch 286 Byte übrig.
Wofür sind diese Byte?

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eigentlich dürften die nicht da sein, zeig mal die Datei. Jede Zeile 
wird zwar auf die nächste 4 Byte Grenze aufgerundet, aber diese 
Bedingung ist durch eine 116 Pixel lange Zeile schon erfüllt. Eventuell 
sind irgendwelche Zusatzinfos am Ende der Datei gespeichert?

Autor: Tobi H. (tobi-) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://en.wikipedia.org/wiki/BMP_file_format sagt, dass der Header auch 
größer sein kann (und wahrscheinlich bei dir ist). Nur der v3-Header hat 
die von dir angegebene Größe, die neueren sind größer

Autor: Benedikt K. (benedikt) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aber das erklärt keine 286 zusätzlichen Bytes.

Autor: Manfred (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Im Anhang bfindet sich die Datei. Laut Header beginnen die Bilddaten an 
Position 54.
Die Datei läßt sich ohne Fehler mit Paint und IrfanView öffnen.

Autor: Manfred (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hier nochmal im gepackter Form. Die Forumssoftware hat meine Datei in 
das PNG-Format gewandelt.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe die Lösung gefunden.
Die Lösung stand im englischen Wiki und Benedikt hatte es auch schon 
angedeutet.
Die Breite des Bildes ist 86 Byte und die nächste durch vier ohne Rest 
teilbare Länge ist 88 Byte. somit werden immer zwei Byte pro Zeile 
angehängt.
Ich hätte bei meiner Angabe H x B dazuschreiben sollen.
Danke für Eure Unterstüzung.

Autor: Manfred (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nachtrag:

In meinem Fall muß es ntürlich heißen:

86 x 3 = 258. Nächster durch vier ohne Rest teilbare Wert ist 260. Also 
werden pro Zeile zwei Byte angehängt.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.