BMP-Format

BMP oder Bitmap ist ein Foto-Format. Hier erfahren Sie, wie eine BMP-Datei strukturiert ist.

BMP-Format

Das BMP-Format gehört zu den einfachsten Formaten, die von Microsoft und IBM zusammen entwickelt wurden, was auch erklärt, warum es besonders unter Windows und OS/2 verbreitet ist. Eine BMP-Datei ist eine Bitmap-Datei, das bedeutet eine Grafikbild-Datei, die Pixel in Form einer Punktetabelle beinhaltet und die Farben entweder nach echten Farben oder mit Hilfe einer indexierten Palette verwaltet. Das BMP-Format wurde so entwickelt, dass man eine Bitmap unabhängig von den Anzeigegeräten erhält (DIB, Device Independent Bitmap).

Die Struktur einer Bitmap-Datei wird folgendermaßen aufgeteilt:

Dateikopf (file header),

Bitmap-Kopf (bitmap information header oder information header),

Palette (optional) und

Bildhauptteil.

Dateikopf

Der Dateikopf liefert Informationen über den Dateityp (Bitmap), die Datei-Größe und gibt an, wo die Information in Bezug auf das Bild selbst beginnen.

Der Kopf besteht aus vier Feldern.

Das erste Feld ist die Unterschrift (2 Bytes), die mit Hilfe von zwei Zeichen angibt, dass es sich um eine BMP-Datei handelt:

BM (424D in Hexadezimal) gibt an, dass es sich um eine Windows-Bitmap handelt.
BA gibt an, dass es sich um eine Bitmap OS/2 handelt.
CI gibt an, dass es sich um ein Farbsymbol OS/2 handelt.
CP gibt an, dass es sich um einen Farbzeiger OS/2 handelt.
IC gibt an, dass es sich um ein OS/2-Symbol handelt.
PT gibt an, dass es sich um einen OS/2-Zeiger handelt.

Das zweite Feld zeigt die Gesamtgröße der Datei in Bytes an (kodiert auf 4 Bytes).

Das dritte Feld ist ein vorgemerktes Feld (auf 4 Bytes).

Das vierte Bild nennt sich Bild-Offset, zu Deutsch Verschiebung, (auf 4 Bytes) und zeigt den Beginn der Bildinformationen an - im Gegensatz zum Beginn der Datei.

Bildkopf

Der Bildkopf liefert Informationen über das Bild, insbesondere über seine Maße und Farben.

Der Bildkopf besteht aus den folgenden Feldern.

Größe des Bildkopfes in Bytes (kodiert auf 4 Bytes): Die hexadezimalen Werte geben den BMP-Formattyp an, zum Beispiel 28 für Windows, 0C für OS/2 1.x und F0 für OS/2 2.x.

Bildbreite (auf 4 Bytes): Anzahl der horizontal angeordneten Pixel (width).

Bildhöhe (auf 4 Bytes): Anzahl der vertikal angeordneten Pixel (height).

Anzahl der Pläne (auf 2 Bytes): Dieser Wert entspricht immer 1.

Tiefe der Farbenkodierung (auf 2 Bytes): Anzahl der zur Farbenkodierung benutzten Bits. Dieser Wert kann 1, 4, 8, 16, 24 oder 32 entsprechen.

Komprimierungsmethode (auf 4 Bytes): Dieser Wert ist gleich 0, wenn das Bild nicht komprimiert ist oder 1, 2 oder 3 je nach benutztem Komprimierungstyp. 1 steht für eine RLE-Kodierung von 8 Bits pro Pixel, 2 für eine RLE-Kodierung von 4 Bits pro Pixel und 3 für eine Bitfields-Kodierung, was bedeutet, dass die Farbe durch eine dreifache Maske kodiert wird, die durch eine Palette dargestellt wird.

Gesamtgröße des Bildes in Bytes (auf 4 Bytes).

Horizontale Auflösung (auf 4 Bytes): Horizontal angeordnete Pixelanzahl pro Meter.

Vertikale Auflösung (auf 4 Bytes): Vertikal angeordnete Pixelanzahl pro Meter.

Anzahl der Farben der Palette (auf 4 Bytes).

Anzahl von wichtigen Farben auf der Palette (auf 4 Bytes); Dieses Feld kann gleich 0 sein, wenn jede Farbe ihre Bedeutung hat.

Bildpalette

Die Bildpalette ist optional. Wenn eine Palette definiert wird, enthält sie nacheinander 4 Bytes für jeden ihrer Eingänge, die Folgendes darstellen: blaue Komponente (auf 1 Byte), grüne Komponente (auf 1 Byte), rote Komponente (auf 1 Byte), ein vorgemerktes Feld (auf 1 Byte).

Bildkodierung

Die Bildkodierung erfolgt, indem nacheinander die Bits aufgeschrieben werden, die Zeile für Zeile jedem Pixel entsprechen. Begonnen wird mit dem Pixel unten links.

Die zweifarbigen Bilder benutzen 1 Bit pro Pixel, was bedeutet, dass mit einem Byte 8 Pixel kodiert werden können.

Die 16-farbigen Bilder benutzen 4 Bits pro Pixel, was bedeutet, dass mit einem Byte 2 Pixel kodiert werden können.

Die 256-farbigen Bilder benutzen 8 Bits pro Pixel, was bedeutet, dass ein Byte jedes Pixel kodiert.

Die Bilder mit echten Farben benutzen 24 Bits pro Pixel, was bedeutet, dass 3 Bytes benötigt werden, um jedes Pixel zu kodieren. Dabei muss die Reihenfolge Blau, Grün, Rot eingehalten werden. Jede Zeile des Bildes muss eine Gesamtanzahl von Bytes enthalten, die ein Vielfaches von 4 ist. Ist dies nicht der Fall, muss die Linie durch 0 so ergänzt werden, dass dieses Kriterium eingehalten wird.

Foto: © Willy Deganello - 123RF.com

Unsere Inhalte werden in Zusammenarbeit mit IT-Experten erstellt, unter der Leitung von Jean-François Pillou, Gründer von CCM.net. CCM ist eine führende internationale Technologie-Webseite und in elf Sprachen verfügbar.
Das Dokument mit dem Titel « BMP-Format » wird auf CCM (de.ccm.net) unter den Bedingungen der Creative Commons-Lizenz zur Verfügung gestellt. Unter Berücksichtigung der Lizenzvereinbarungen dürfen Sie das Dokument verwenden, verändern und kopieren, wenn Sie dabei CCM deutlich als Urheber kennzeichnen.
Treten Sie der Community bei