Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Windows unterstützt Formate zum Komprimieren von Bitmaps, die ihre Farben mit 8 oder 4 Bit pro Pixel definieren. Die Komprimierung reduziert den Für die Bitmap erforderlichen Datenträger und Arbeitsspeicher.
Wenn das Compression Member der Bitmapinformationsheaderstruktur BI_RLE8 ist, wird ein RLE-Format (Run-Length Encoding) zum Komprimieren einer 8-Bit-Bitmap verwendet. Dieses Format kann in codierten oder absoluten Modi komprimiert werden. Beide Modi können an einer beliebigen Stelle in derselben Bitmap ausgeführt werden:
- Codierter Modus besteht aus zwei Byte: Das erste Byte gibt die Anzahl der aufeinander folgenden Pixel an, die mit dem Farbindex gezeichnet werden sollen, der im zweiten Byte enthalten ist. Darüber hinaus kann das erste Byte des Paares auf Null festgelegt werden, um ein Escapezeichen anzugeben, das das Ende einer Zeile, das Ende einer Bitmap oder ein Delta angibt, abhängig vom Wert des zweiten Byte. Die Interpretation des Escapezeichens hängt vom Wert des zweiten Byte des Paares ab, bei dem es sich um einen der folgenden Werte handeln kann.
Wert | Bedeutung |
---|---|
0 | Ende der Zeile. |
1 | Ende der Bitmap. |
2 | Delta. Die 2 Byte nach dem Escapezeichen enthalten nicht signierte Werte, die den Offset rechts und oben des nächsten Pixels von der aktuellen Position angeben. |
- Im absoluten Modusist das erste Byte null und das zweite Byte ist ein Wert im Bereich 03H bis FFH. The second byte represents the number of bytes that follow, each of which contains the color index of a single pixel. Wenn das zweite Byte zwei oder weniger ist, hat das Escapezeichen dieselbe Bedeutung wie der codierte Modus. Im absoluten Modus muss jede Ausführung auf einer 16-Bit-Wortgrenze nullabstandig sein.
Das folgende Beispiel zeigt die Hexadezimalwerte einer komprimierten 8-Bit-Bitmap:
[03 04] [05 06] [00 03 45 56 67 00] [02 78] [00 02 05 01]
[02 78] [00 00] [09 1E] [00 01]
Die Bitmap wird wie folgt erweitert (zweistellige Werte stellen einen Farbindex für ein einzelnes Pixel dar):
04 04 04
06 06 06 06 06
45 56 67
78 78
move current position 5 right and 1 up
78 78
end of line
1E 1E 1E 1E 1E 1E 1E 1E 1E
end of RLE bitmap
Wenn das Komprimierungselement BI_RLE4 ist, wird die Bitmap mithilfe eines Codierungsformats für eine 4-Bit-Bitmap komprimiert, das auch codierte und absolute Modi verwendet:
- Im codierten Modus enthält das erste Byte des Paars die Anzahl der Pixel, die mit den Farbindizes im zweiten Byte gezeichnet werden sollen. Das zweite Byte enthält zwei Farbindizes, eine in der hohen Reihenfolge 4 Bit und eine in der niedrigen Reihenfolge 4 Bit. Die erste der Pixel wird mit der Farbe gezeichnet, die durch die hohe Reihenfolge 4 Bit angegeben wird, die zweite wird mit der Farbe in der unteren Reihenfolge 4 Bit gezeichnet, der dritte wird mit der Farbe in der hohen Reihenfolge 4 Bit usw. gezeichnet, bis alle Pixel, die durch das erste Byte angegeben wurden, gezeichnet wurden.
- Im absoluten Modus ist das erste Byte null. Das zweite Byte enthält die Anzahl der folgenden Farbindizes. Nachfolgende Bytes enthalten Farbindizes in ihrer hohen und niedrigen Reihenfolge 4 Bits, einen Farbindex für jedes Pixel. Im absoluten Modus muss jede Ausführung an einer Wortgrenze ausgerichtet werden. Die für BI_RLE8 beschriebenen End-of-Line-, End-of-Bitmap- und Delta-Escapes gelten auch für BI_RLE4 Komprimierung.
Das folgende Beispiel zeigt die Hexadezimalwerte einer komprimierten 4-Bit-Bitmap:
03 04 05 06 00 06 45 56 67 00 04 78 00 02 05 01
04 78 00 00 09 1E 00 01
Die Bitmap wird wie folgt erweitert (einstellige Werte stellen einen Farbindex für ein einzelnes Pixel dar):
0 4 0
0 6 0 6 0
4 5 5 6 6 7
7 8 7 8
move current position 5 right and 1 up
7 8 7 8
end of line
1 E 1 E 1 E 1 E 1
end of RLE bitmap