Atari Logo
Atari Computer

Hauptseite -
Welches System? -
Hardware -
Software -
Emulatoren -
Internet
MausNet
Programmieren
Verweise
Über

Dateiformate

Home Rasterformate GEM Image-Format MacPaint-Format

1.2.11 Imagic-Format

siehe auch: ST Computer 12/1988, Bilderspiele

Extension: .IC1 (low) .IC2 (med) .IC3 (high)

Länge variabel

Header

4 BYTEs "IMDC"
1 WORD Auflösung (0=low, 1=medium, 2=high)
16 WORDs Palette im ST-Format (siehe @{"Palette" link "Palette"})
1 WORD Datum der Erstellung im GEMDOS-Format
1 WORD Uhrzeit der Erstellung im GEMDOS-Format
8 BYTEs Name des Basisbildes (für Differenzkomprimierung), oder 0
1 WORD Länge der komprimierten Packdaten
1 LONG Registriernummer (des Erzeugers, kann 0 sein)
8 BYTEs reserviert
1 BYTE komprimiert? (0=nein, 1=ja)

Ist das Bild komprimiert, folgen weitere Angaben:

1 BYTE Deltakomprimierung? (-1=nein, >-1=ja)
1 BYTE ?
1 BYTE Escape-Byte

Bilddaten

variabel Bilddaten komprimiert. Das Bild kann direkt komprimiert oder Differenzkomprimiert sein. Bei der Differenzkomprimierung werden nur die Unterschiede zu einem Referenzbild gespeichert. Dies kann benutzt werden, um Animationen effektiv zu packen.

Komprimierung, stand-alone:

Für jedes Byte x aus den Bilddaten:

x=Escapebyte Lies ein weiteres Byte n. (n ist unsigned).
Ist n>=2, wiederhole das nächste Byte n mal.
Ist n=1, lies Bytes bis ein Byte k ungleich 1 gelesen wird.
Lies das nächste Byte d.
Sei o die Anzahl der gelesenen 1 Bytes, wiederhole d (256 * o + k) mal.
In Pseudocode (an C angelehnt):
if (n == 1) {
    o = 0;
    while (n == 1) {
        o++;
        n = next byte;
    }
    k = n;
    d = next byte;
    Use d (256 * o + k) times.
}
else {
    d = next byte;
    Use d (n) times.
}
x!=Escapebyte Verwende x direkt.

Komprimierung, Differenzkomprimierung:

Für jedes Byte x aus den Bilddaten:

x=Escapebyte Lies ein weiteres Byte n. (n ist unsigned).
Ist n>=3, wiederhole das nächste Byte n mal.
Ist n=1, fahre fort wie in der stand-alone Kom­pri­mie­rung oben.
Ist n=2, Lies ein weiteres Byte n.
Ist n=0, Bildendeend.
Ist n>=2, nimm n Bytes des Basisbildes.
Ist n=1, fahre fort wie für n=1 in der stand-alone Kom­pri­mie­rung oben, aber nimm (256 * o + k) Bytes des Basisbildes.
x!=Escapebyte Verwende x direkt.

Home Rasterformate GEM Image-Format MacPaint-Format


Best viewed with any browser English version not yet available.

Änderungen und Irrtümer vorbehalten. Letzte Änderung:
14 September 2001.
Home - Mail an den Webmaster - Impressum