
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 |
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 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.
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.
Das BMP-Format benutzt meist keine Kompression oder eine Art von RLE (Runlength Encoding).
Nähere Informationen zu RLE
Speicheroptionen BMP im Photoshop [Version CS]
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.
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).