OS/2 Bitmap

Dateiendungen: BMP, DIB

Farbtiefe: 1, 4 oder 8 Bit jeweils mit Palette, 24 Bit Truecolor

Unterformate: Das OS/2 Bitmap-Format ist bis zur Version 1.3 dem Windows-Format recht ähnlich. Ab OS/2 Version 2.0 sind an der Formatdefinition einige Änderungen vorgenommen worden, unter anderem kann es auch für Icons und Mauscursor verwendet werden.

Kompression: Genau wie bei Windows sind auch OS/2-Bitmaps gewöhnlich unkomprimiert gespeichert. Und auch hier besteht die Möglichkeit, Bilder mit einer Farbtiefe von 4 oder 8 Bit pro Pixel durch RLE-Kompression zu verkleinern.

Interner Aufbau: Die BMP-Dateien von OS/2 sind denen von Windows sehr ähnlich. Der Aufbau ist größtenteils identisch:

OffsetBytesBedeutung
00H2Dateikennung (normalerweise 'BM')
02H4Dateilänge (bis 1.3) oder Headerlänge (ab 2.0)
06H2X-Hotspot (nur für Icons und Cursor)
08H2Y-Hotspot (nur für Icons und Cursor)
0AH4Offset des Datenbereiches

Ab der Version 2.0 von OS/2 sind verschiedene Dateikennungen möglich: BM=Bitmap, IC=Icon, PT=Pointer (Cursor), CI=Color Icon, CP=Color Pointer und BA=Bitmap Array. In einem 'Bitmap Array' sind mehrere Bitmaps gespeichert und auch die Einträge im Header werden anders interpretiert. Diese Besonderheit möchte ich jedoch nicht näher behandeln. Die Angabe der Headerlänge (ab Version 2.0) ist besonders für Icons und Cursor wichtig, weil die BMP-Datei dann zwei Header und zwei Bitmaps beinhaltet (XOR- und AND-Maske).

Version bis 1.3: An den Datei-Header schließt sich der Bitmap-Info-Block an. Bei diesem sind die ersten fünf Einträge mit dem Windows-Format identisch, wobei die Breite und Höhe nur als Worte (2 Byte) gespeichert werden. Die Farbpalette beginnt bei Offset 1AH. Jeder Paletteneintrag umfaßt 3 Bytes - je eine Zahl für den Blau-, Grün- und Rotanteil. Der Datenbereich kann in dieser Version nicht komprimiert werden. Die Bilddaten werden zeilenweise, von unten nach oben abgespeichert, wobei die Zeilen gegebenenfalls bis zur Grenze von 32 Bit mit Nullbits aufgefüllt werden müssen.

Version ab 2.0: An den Datei-Header schließt sich der Bitmap-Info-Block an. Dieser ist in den ersten 40 Byte mit dem von Windows identisch. Die Farbpalette beginnt bei Offset 4EH. Auch hier wird - genau wie bei Windows - ein zusätzliches Nullbyte verwendet, so daß jeder Paletteneintrag 4 Bytes benötigt. Der Datenbereich ist in der Regel unkomprimiert gespeichert, wobei mit der untersten Bildzeile begonnen wird. Die Definition der möglichen RLE-Kompression lesen Sie bitte bei den Windows-Bitmaps nach.

Anzumerken ist vielleicht noch die Tatsache, dass auch OS/2-Bitmaps bei 2 Bit Farbtiefe ein Palette besitzen. Diese kann mit einem Hex-Editor leicht angepaßt werden.


Zurück zum Textanfang
Zurück zum Inhaltsverzeichnis