

                  Das PCX-Format in 16 Farben
                  

Bevor ich anfange: Wenn Ihr Euch den Artikel ber PCX-Bilder in
256 Farben noch nicht durchgelesen habt, dann macht das jetzt!
Ebenso mu ich den Inhalt des Artikels ber die 16 Farben Modis
voraussetzen. Da stehen Dinge drinne, die ich hier nicht unbe-
dingt wiederholen will aber wichtig fr das Verstndnis sind.

Nun geht's los.

Ersteinmal zum Header:

Das wichtigste im Header ist nun die Paletteninfo ab dem Offset
10h (16d). Hier finden sich die RGB-Werte der 16 Farben wieder,
die im PCX-Bild Verwendung finden. Dabei steht an der Offset-
adresse 10h der R-Wert der 0. Farbe, bei 11h der G-Wert der
0. Farbe, bei 12h der B-Wert der 0. Farbe, bei 13h der R-Wert
der 1.Farbe (...) und bei 3Fh der B-Wert der 15. Farbe. Diese
Werte mssen wiederum erst durch 4 geteilt werden, um die rich-
tigen Werte zu erhalten.
Da die Paletteninfo nun ja im Header enthalten ist, entfllt der
Zusatz am Ende, wie bei den mehrfarbigen Bildern.


Nun zur Datenablage:

Im Artikel ber die 16 Farben Modis stand etwas ber Bitplanes,
erinnert Ihr Euch? Gut, denn diese werden jetzt wieder bentigt.
Der Datenbereich beginnt wieder an der Offsetadresse 80h. Hier
befindet sich nun das erste Byte der ersten Bitplane (BP #0!).
Es folgt da zweite Byte der BP #0, dann das dritte usw. bis
dann da 80.Byte (das letze einer Zeile) erreicht wird. Nun kommt
nicht etwa da 81. sondern wieder das erste - nur der zweiten BP
(BP #1). Ist auch hier das 80. Byte erreicht, wird BP #2 und dann
BP #3 eingeblendet und ebenso verfahren. Erst dann wird das 81.
Byte gelesen - wieder aus BP #0. So wird dann solange verfahren,
bis das 80. Byte der 480. Zeile ausgelesen wurde - Das Bild ist
komplett!
Auch hier tritt wieder da RLE-Verfahren zum Packen der Info in
Kraft. Sollten sich also gleiche Bytes innerhalb einer BP hinter-
einander befinden, so werden diese zusammengefat, wie es schon
beschrieben wurde (erster Artikel). Das obenbeschriebene 80. Byte
wird also nur sehr selten anzutreffen sein - es mssen also nicht
genau 80 Byte fr jede Bitplane ausgelesen werden, sondern ledig-
lich soviele Bytes, bis die 80 Pixel komplett sind... verstanden?
Hoffentlich.

Tja, das war zwar recht kurz, aber eigentlich alles. Noch Fragen?
Dann an die Redaktion damit!

                                                      Kemil

