Überblick

Dieses Format ist das Standardformat des Windows-Betriebssystems, wird mittlerweile aber auch von vielen Programmen anderer Betriebssysteme unterstützt. Es basiert auf dem RGB-Modell, die Kodierung von z.B. Graustufenbildern ist aber mit Hilfe von Farbtabellen ebenfalls möglich.

Macintosh File Type: BMP
Windows File Type: .BMP
Farbmodelle: S/W, RGB, Graustufen, Indizierte Farben
ICC-Profile: eingeschränkt, nur Windows ICM
Anzahl Kanäle: 1 oder 3 Farbkanäle, keine Alpha-Kanäle
Bittiefe: 1 - 16 Bit pro Kanal
Kompression: ohne, RLE
Maximale Bildgröße: 32 000x32 000 Pixel
Hersteller:

Microsoft Corp.

Plattform: MS-DOS, Windows, Macintosh, OS/2

Entwicklungsgeschichte

BMP wurde ursprünglich für Windows 1.0 entwickelt und war zu Beginn ein eher primitives Format, das eine feste Farbtabelle besaß und die gängigen Grafikkarten für IBM-PCs unterstützen sollte. Eine Kompressionsmethode fehlte zu Beginn gänzlich. Heute wird diese Version als Windows device-dependent Bitmap (DDB), also geräteabhängiges Windows-Format bezeichnet. Mit der Version Windows 2.0 wurden anwenderdefinierbare Farbtabellen hinzugefügt. Diese BMP Variante bezeichnet man als Microsoft Device-Independent Bitmap (DIB), also geräteunabhängiges Bitmap-Format.
Während der Entwicklungsphase des IBM-Betriebssystems OS/2 war Microsoft stark daran beteiligt, die grafische Benutzeroberfläche benötigte ebenfalls ein Standardformat, daher setzte man hier auch BMP ein.
Mit den neueren Windows-Versionen 3.0 und 4.0 kamen weitere Ergänzungen zum Format hinzu, sodass sich heutige BMP-Versionen von Windows und OS/2 unterscheiden - im Gegensatz zu Windows 2.0 und OS/2 1.0 BMP, die nahezu identisch waren.
Ursprünglich war das Format nicht zum plattformübergreifenden Datenaustausch gedacht, derzeit gibt es viele verschiedene Versionen des BMP-Formates. BMP wurde für Intel-basierte Computer entwickelt, sodass die Bytefolge an diesen Prozessortyp angepasst ist. Heute kann das Format zwar plattformübergreifend eingesetzt werden, ein Programm, das die Daten liest muss aber die Bytefolge interpretieren können. Auf Macintosh-PCs ist die Speicherung der Bytefolge umgekehrt zur Windows-basierten Speicherung.

Datenstruktur

Eine Windows 1.0 BMP-Datei besitzt nur einen Header gefolgt von den Bitmap-Daten, Windows 4.0-Versionen bestehen zusätzlich noch aus einem Datei-Header und einer Farbtabelle. Der Aufbau einer BMP-Datei sieht also folgendermaßen aus:


Datenstruktur einer BMP-Datei

File Header
Der Header ist 14 Bytes lang und enthält eine Dateiidentifizierung und Angaben zur Dateigröße in Bytes. Weiters folgen Strukturen ohne Daten, die von Applikationen genutzt werden, sobald der Header eingelesen wird.

Bitmap Header
Dieser Header ist seit Windows 95 108 Bytes lang und enthält Informationen zu den Bitmap-Daten. Hier finden sich z.B. die Angaben über Breite und Höhe der Datei in Pixeln, die Anzahl der Farbpaletten und die Datentiefe (Anzahl der Bits pro Pixel). Weiters findet man hier auch Informationen zur Kompression (z.B. unkomprimiert oder RLE), zur Größe der gespeicherten Bitmap in Bytes oder den verwendeten Farben.
Mit jeder Windows-Version sind neue Header- Felder hinzugekommen, wie zum Beispiel mit Windows 95 die vier Masken-Felder (Rot, Grün, Blau, Alpha). Von Adobe Photoshop werden jedoch Informationen zu z.B. Color Management oder auch Alphakanälen beim BMP-Format nicht unterstützt.

Der Bitmap-Header im Detail

Color Palette
Die Farbtabelle ist optional und hängt von der Datentiefe des Bildes ab - sie ist nur bei 1-, 4-, und 8- Bit Datentiefe vorhanden.

Bitmap Data
Die Bitmap-Daten enthalten die eigentlichen Bildinformationen - für jedes Pixel werden die Farbwerte gespeichert.

Der Aufbau einer BMP-Datei anhand eines Beispiels
Folgendes Bild dient als Beispiel zur besseren Veranschaulichung:

Vergrößert würde das Bild folgendermaßen aussehen, wobei die Kästchen die einzelnen Pixel anzeigen:

Dazu kann man nun das (original) Bild mit einem beliebigen Hex-Editor betrachten. Der rot umrandete Bereich kennzeichnet den Header - dieser ist aber hier nur zweitrangig von Bedeutung.

Das nächste Bild zeigt den Hexadezimal-Code der Grafik, dabei sind die einzelnen Pixel in ihrer Farbe unterlegt (aus Gründen der Lesbarkeit mit jeweils nur 50% Deckkraft). Nach dem Header beginnen die Bilddaten, allerdings wird dabei am linken unteren Rand des Bildes begonnen. Danach wird Zeile für Zeile nach oben gelesen. Die erste Zeile wäre also: 2 Pixel schwarz, 2 Pixel dunkelgrau, 2 Pixel hellgrau, 2 Pixel weiß. Nach diesem Schema folgt die gesamte Grafik. Die letzen beiden, hier nicht farbig unterlegten Werte (00 00) gehören nicht mehr zu den eigentlichen Pixel-Werten.

Das folgende Bild zeigt noch einmal das Original-BMP-Bild vergrößert, jedoch mit den Hexcodes der einzelnen Pixel versehen.

Kompression

Das BMP-Format benutzt meist keine Kompression oder eine Art von RLE (Runlength Encoding).

Nähere Informationen zu RLE

Speicheroptionen

Beim Speichern im BMP-Format sind nur sehr wenige Angaben zu treffen, es ist nur das Dateiformat sowie die Farbtiefe zu wählen. Der einfache Speicherdialog in Photoshop sieht folgendermaßen aus:


Speicheroptionen BMP im Photoshop [Version CS]

Vorteile/Nachteile

BMP kann praktisch von allen Programmen ohne zusätzliche Plugins gelesen werden – so kann man beispielsweise auch in ein Textverarbeitungsprogramm wie Microsoft Word Grafiken problemlos einbinden (dies ist aber auch mit andern Formaten möglich).
Weiters ist es absolut verlustfrei, was aber auch zu einem Nachteil führen kann, da die Dateien durch die nicht vorhandene oder geringe Kompression sehr viel Speicherplatz benötigen.

Anwendungsgebiete

Das BMP-Format ist wie bereits erwähnt das Standard-Format des Windows-Betriebssystems. Außerhalb der Plattform eignet es sich generell für alle Bereiche in denen gar nicht bzw. verlustfrei komprimierte Grafiken benötigt werden (z.B. Computerspiele).

Ergänzende und vertiefende Module