BMP-Format — Aufbau und Einsatz der Windows-Bitmap-Datei
BMP erklärt: Datei- und Info-Header, Farbtabelle, Pixel-Array, warum unkomprimierte Dateien so groß sind, Bottom-up-Speicherung, Zeilen-Padding und heutige Einsätze.
BMP ist das Dateiformat zum Speichern von geräteunabhängigen Bitmaps (DIB), wie sie unter Microsoft Windows und OS/2 verwendet wurden. Es ist kein Standard einer internationalen Normungsorganisation; als De-facto-Spezifikation dient die Entwicklerdokumentation von Microsoft. Das wichtigste Merkmal ist der einfache Aufbau, den jedes Programm leicht lesen und schreiben kann.
Dateiaufbau
Laut dem Microsoft-Learn-Dokument „Bitmap Storage“ besteht eine BMP-Datei aus folgenden Teilen in dieser Reihenfolge:
| Reihenfolge | Bestandteil | Inhalt |
|---|---|---|
| 1 | BITMAPFILEHEADER | Dateikennung (BM), Dateigröße, Startposition der Pixeldaten |
| 2 | BITMAPINFOHEADER (oder V4/V5-Header) | Breite und Höhe in Pixeln, Bits pro Pixel, Kompressionsart, Auflösung |
| 3 | Farbtabelle (RGBQUAD-Array) | Für Palettenbilder mit 1, 4 oder 8 Bit |
| 4 | Pixel-Array | Die eigentlichen Bilddaten |
Die ersten beiden Bytes der Datei sind ASCII BM (hexadezimal 42 4D); daran erkennen Sie eine BMP-Datei auch bei geänderter Endung. Der Info-Header enthält außerdem ein Feld für die Druckauflösung (Pixel pro Meter).
Gespeichert von unten nach oben
Eine gewöhnliche BMP-Datei speichert die Pixel von der untersten zur obersten Zeile (bottom-up). Ist der Höhenwert im Header negativ, wurde von oben nach unten (top-down) gespeichert. Außerdem wird jede Zeile am Ende mit Füllbytes aufgefüllt, damit ihre Bytezahl ein Vielfaches von 4 ist. Wer selbst einen BMP-Parser schreibt, macht hier häufig Fehler.
Beispiel für die Zeilenberechnung
Eine BMP-Zeile muss auf 4-Byte-Einheiten ausgerichtet sein. Bei einem 24-Bit-Bild mit 101 Pixeln Breite umfasst eine Zeile tatsächlich 101 × 3 = 303 Bytes; um auf ein Vielfaches von 4 zu kommen, wird 1 Byte aufgefüllt und die Zeile mit 304 Bytes gespeichert. Die Gesamtgröße der Pixeldaten beträgt also (Bytes pro Zeile) × Höhe in Pixeln; zusammen mit dem Header (meist 54 Bytes) ergibt sich die Dateigröße. Wegen dieser Regel tritt bei Bildern, deren Breite kein Vielfaches von 4 ist, beim direkten Verarbeiten häufig ein zeilenweise verschobenes Bild auf.
Warum die Dateien so groß sind
BMP speichert meist unkomprimierte Rohpixel. Ein 24-Bit-BMP belegt 3 Bytes pro Pixel, ein Bild mit 1920×1080 also etwa 6,2 MB, ein Smartphone-Foto mit 4032×3024 etwa 36,6 MB. Für Palettenbilder mit bis zu 8 Bit ist RLE-Kompression (Lauflängenkodierung) möglich, bei Fotos bringt sie aber kaum etwas. Auch MDN rät wegen der Dateigröße davon ab, BMP für Webinhalte zu verwenden.
Transparenz
Das klassische 24-Bit-BMP hat keinen Alphakanal. 32-Bit-BMPs mit V4/V5-Header können eine Alphamaske definieren, doch viele Programme werten sie nicht korrekt als Transparenz aus – für den Austausch transparenter Bilder ist PNG sicherer.
Wann BMP heute noch verwendet wird
- Ältere Industrieanlagen, Embedded-Geräte, Bonbondrucker oder manche firmeninterne Programme akzeptieren nur BMP
- Einfache Programme oder Lernbeispiele, die Pixel ohne Kompression und Dekompression direkt verarbeiten sollen
- Speicherform kleiner Bilder innerhalb von Windows-Symbolen (ICO)
Worauf Sie bei der Umwandlung achten sollten
- BMP → PNG: Verlustfrei und deutlich kleiner – die beste Umwandlung zum Archivieren und Teilen.
- BMP → JPG: Bei Fotos schrumpft die Datei auf einen Bruchteil (oft ein Zehntel und weniger), allerdings mit verlustbehafteter Kompression.
- Andere Formate → BMP: Prüfen Sie die vom Gerät verlangte Bittiefe (24 oder 8 Bit). Transparente Bereiche werden mit der Hintergrundfarbe gefüllt. Mit dem Tool Bildformat umwandeln können Sie als BMP speichern.
Jetzt ausprobieren