
GIFs (Graphics Interchange Format) Stärken liegen nicht in raffinierten Kompressionsalgorithmen oder einem großen Farbreichtum in jedweder Auflösung, sondern in der Möglichkeit, Bildhintergründe transparent darstellen und Bildfolgen (Animationen) anzeigen zu können. Um im Web bei langsameren Verbindungen sofort eine sich verdeutlichende Grafik zeigen zu können, unterstützt GIF außerdem die zeilenweise (interlaced) Speicherung von Bildern.
CompuServe definierte das GIF-Format 1987 (GIF87a). Es unterstützt Bilder mit bis zu 256 Farben aus einer definierten Palette. Bilder dürfen maximal 16 000 x 16 000 Bildpunkte groß sein. GIF bietet eine verlustfreie Kompression durch den LZW-Algorithmus, den auch bestimmte TIFF-Varianten benutzen.
Nur 256 Farben - was macht GIF dann überhaupt bedeutsam? Zunächst reicht das für Web-Grafik locker aus, wenn man kleine Icons, Hinweispfeile oder Logos erstellt und daran denkt, daß es immer noch Menschen mit Modem gibt. Weitere Mechanismen machen GIF-Bilder als Web-Grafik interessant: Der zeilenweise Aufbau ermöglicht, schnell ein Rohbild anzuzeigen, ohne daß die Web-Seite lange leer erscheint. Dabei zeigt der Browser zunächst nur jede achte Bildzeile an, danach Schritt für Schritt die restlichen Zeilen in einer definierten Reihenfolge. Seit GIF89a kann die Palette nach Farben sortiert werden, so daß die am häufigsten vorkommenden Farben vorn stehen. Lädt man das Bild in einer Situation, in der weniger Farben verfügbar sind, bleibt gewährleistet, daß nicht ausgerechnet die häufigste Farbe wegfällt.
Eine Datei kann mehrere Frames samt ihnen zugeordneten Verzögerungen enthalten. Die Darstellungssoftware zeigt jeden Frame die festgelegte Zeit lang und geht dann zum nächsten über. Durch die Beschränkung auf 8 Bit Farbtiefe ist GIF als Format allerdings nicht geeignet, feine Farbverläufe oder detailreiche Naturszenarien darzustellen. Eigentlich sollte das Bildformat PNG (Portable Network Graphics) GIF ablösen. Netscape beispielsweise kann es neben JPEG oder GIF anzeigen; allerdings hat sich PNG noch nicht richtig durchgesetzt.
GIFs Fähigkeiten sind gleichzeitig Beschränkungen: Diese Art des Bildformats erlaubt zum Beispiel nicht das Speichern von Alphakanälen oder Layern, so wie es das Gimp-eigene XCF oder das Photoshop-Hausformat beherrschen.
Palette heißt bei GIF Global Color Map. Vor dem Speichern als GIF muß man die 24bittige Farbinformation des Gimp-Bildes in 8-Bit-Werte wandeln, die als Indizes in diese Farbtabelle fungieren. Dieser Zwischenschritt ist für TIFF- oder JPEG-Dateien nicht erforderlich. Jeder einzelne Wert in der Tabelle enthält natürlich weiterhin 24 Bit, insgesamt können aber in einem GIF nur 256 verschiedene Farben vorkommen.
Jenseits aller Tricks, Filter und Tools sind für die Arbeit mit dem GIF-Format in Gimp zwei Dialoge wichtig: Mit Image/Indexed aus dem Kontextmenü erstellt Gimp die 256 Farben der Palette. Diese Konvertierung klappt oft nicht verlustfrei - Farbverläufe werden zu klobigen Querbalken, ätherische Naturnebel zu Wolkenklötzen. Im Index-Dialog von Gimp kann man die Palette auswählen, die man für die Konvertierung verwenden möchte, oder von den im Bild enthaltenen Farben eine bildspezifische erstellen lassen. Man kann sich mit File/Dialogs/Palette eigene Paletten definieren.
|
Die von einem GIF zu benutzende Palette kann man frei wählen. |
|
Spezielle Befehle hinter den Layernamen regeln die Art der Darstellung und die Verzögerung bei animierten GIFs. |
Um ein animiertes GIF zu erstellen, arbeitet man mit Layern. Diese dürfen nicht miteinander verschmolzen werden, denn jeder Layer bildet einen Frame der Bildsequenz. Für GIF bietet der Layerdialog ein raffiniertes Feature an: Je nach Namensgebung des Layers versteht Gimp, wie die Einzelbilder zu kombinieren sind:
Heißt der zweite Layer Layer 2 (100ms)(combine), erscheint er gemeinsam mit dem ersten Layer. Andersherum ersetzt Gimp durch die Option Layer 7 (200ms)(replace) Layer 7 nach 200 ms durch den nächsten Layer. Combine schichtet brav Layer für Layer bei der Anzeige aufeinander, replace ersetzt den unteren Frame durch den neu angezeigten. Die Layer erhalten eine Nummer: Gimp zeigt in der Animation Layer 7 an siebter Stelle nach dem Hintergrund an, auch wenn der Layer im Layerdialog noch an dritter Stelle zu liegen scheint. Läßt man die Numerierung weg, werden die Layer in der Reihenfolge angezeigt, in der sie liegen.
Nach der Anwendung von Image/Indexed kann man ein GIF speichern. Im Speicherdialog des GIF stellt man Optionen wie interlaced, Kommentare oder die Animationsmöglichkeiten ein. Enthält ein Layer während der Erstellung der Bildschichten für eine Animation keine Verhaltensangabe, kann man die Optionen combine beziehungsweise replace und die Verzögerung einstellen - allerdings bezieht sich die jeweilige Option nur auf Layer, die keine Spezifikation erhalten haben.
Ein animiertes GIF kann aus vielen, großen Layern bestehen und dadurch viel Platz verbrauchen. Um das zu vermeiden, bietet Gimp einen Optimierungsfilter speziell für Animationen. Filters/Animation Optimize zeigt nur Bildinformationen an, die neu in einem Layer hinzukommen, und läßt Vorhandenes im nächsten Layer einfach weg. Jeder Layer paßt sich zusätzlich durch diesen Filter so eng wie möglich an das Bildmotiv an. Zur Kontrolle und zum Testen von GIF-Animationen verwendet man Filters/Animation/Playback. Dieser Filter spielt die Animation ab und erlaubt das schrittweise Kontrollieren der Frames.
SUSANNE SCHMIDT
ist Dipl.-Politologin und arbeitet als freie Perl-Programmiererin.
Literatur
[1] Susanne Schmidt, Christian Kirsch; Schicht für Schicht; Gimp-Tutorial, Teil 1
[2] Susanne Schmidt; Nicht nur im Bad; Gimp-Tutorial, Teil 2
Dieser Text ist der Zeitschriften-Ausgabe 08/1999 von iX entnommen.
iOS, Android, Windows Phone 7 und HTML5 - das neue Sonderheft von heise Developer führt Einsteiger und Profis in die Programmierung mobiler Geräte ein.