Das Graphics Interchange Format (englisch Grafikaustausch-Format), kurz GIF [], teils auch in der Aussprache [], ist ein Grafikformat für Bilder mit Farbpalette (Farbpalette mit max. 256 Farben, inkl. einer „Transparenzfarbe“). Es erlaubt eine verlustfreie Kompression der Bilder. Darüber hinaus können mehrere (übereinanderliegende) Einzelbilder in einer Datei abgespeichert werden, die von geeigneten Betrachtungsprogrammen wie Webbrowsern als Animationen interpretiert werden.
Geschichte Entwicklung mini|240x240px|Animiertes GIF Das von Steve Wilhite (1948–2022) entwickelte GIF wurde 1987 von dem US-Onlinedienst Compuserve als Farbformat eingeführt, um das vorher benutzte RLE-Format zu ersetzen, das nur Schwarzweißbilder darstellen konnte. GIF wurde vor allem wegen seiner effizienten Kompression LZW populär. Die entstandenen Bilddateien benötigten deutlich weniger Speicherplatz als andere zu der Zeit übliche Grafikformate wie PCX oder MacPaint. Selbst große Bilder konnten so in vernünftiger Zeit übertragen werden, auch mit langsamen Modems. Zudem ermöglichte die offene Lizenz-Politik von CompuServe jedem Programmierer, GIF für eigene Anwendungen kostenlos zu implementieren, sofern dieser einen Hinweis auf das Urheberrecht des Online-Dienstes anbrachte.
In den ersten Jahren des Web war GIF neben dem Schwarz-Weiß-Bildformat XBM das zweite Standardformat für Bilder. Das heute dominierende JPEG-Format wurde erst nach der Einführung des Mosaic-Browsers üblich. Während das XBM-Format vollständig verdrängt wurde, konnte sich GIF behaupten, weil es – im Gegensatz zu JPEG – Transparenz und Animationen erlaubt.
Die erste 1987 herausgebrachte GIF-Version war die Version „87a“. Im Jahr 1989 veröffentlichte CompuServe eine erweiterte Version, die „89a“ genannt wird. Man kann die Version an den ersten sechs Bytes einer GIF-Datei erkennen. Diese entsprechen entweder den ASCII-Zeichen GIF87a oder GIF89a.
In den 2010er Jahren erlebten GIF-Animationen ein überraschendes Comeback im Web. Als Grund wird die Popularität von Bilder-Forenseiten wie tumblr und 4chan genannt, wo sie genutzt werden um u. a. Cinemagramme und Stereogramme zu erstellen.
Im Mai 2015 begann auch Facebook GIF zu unterstützen, nachdem dies ursprünglich abgelehnt worden war. Zunehmend wird GIF als Synonym für animierte Kurzvideos verstanden, auch wenn sie technisch nicht in diesem Format vorliegen.
Begriff und Aussprache mini|Steve Wilhites Dia bei der Verleihung der Webby Awards 2013 Im Jahr 2012 wurde das Wort „GIF“ offiziell als Substantiv und Verb in der englischen Sprache anerkannt, als Verb mit der Bedeutung „ein GIF zu erstellen“. Der US-amerikanische Zweig der Oxford University Press wählte es als Wort des Jahres, da sich GIF „zu einem Werkzeug mit ernsthaften Anwendungen in Journalismus und Forschung entwickelt habe“.
Die korrekte englische Aussprache von „GIF“ wurde Mitte der 2010er Jahre kontrovers diskutiert. Die am häufigsten zu findende Aussprache ist die mit einem „harten G“ (, ), aber auch die Aussprache mit „weichem G“ (, ) ist geläufig. Deutlich seltener findet sich die Aussprache in Einzelbuchstaben (, ). Der GIF-Entwickler Steve Wilhite sprach sich anlässlich der Verleihung des Webby Awards 2013 für die Aussprache mit weichem G aus, während andere argumentierten, dass das „G“ sich von dem Wort graphics ableite und daher mit hartem G ausgesprochen werden solle. Der Überlieferung nach ist die Aussprache mit weichem G eine hommage an den ehemaligen Erdnussbutter-Hersteller Jif.
Eigenschaften Farben, Transparenz und Bildgröße mini|hochkant=1.2|links|Bei Fotos wie diesem macht sich die Beschränkung auf 256 Farben deutlich bemerkbar. Das Bild wirkt hier durch Dithering grobkörnig.hochkant=1.2|mini|Das gleiche Bild als JPEG ohne diese Einschränkungen. Bei GIF sind die Farbinformationen in einer Farbtabelle (auch Farbpalette genannt) abgelegt. Diese kann bis zu 256 verschiedene Einträge enthalten, die frei aus 2563 ≈ 16,7 Millionen möglichen Farbwerten auswählbar sind. Als das Bildformat vorgestellt wurde, war dies keine wesentliche Einschränkung, da Hardware, mit der man mehr Farben anzeigen konnte, wegen der sehr hohen Kosten kaum verbreitet war. Für einfache Zeichnungen, Schwarz-Weiß-Fotografien und ähnliches sind 256 Farben oder Graustufen in der Regel auch heute noch ausreichend. Komplexere Bilder wie Farbfotos oder Zeichnungen mit umfangreichen Farbverläufen müssen demzufolge vor der Speicherung auf 256 Farben oder weniger reduziert werden (Farbquantisierung). Die so entstandenen Farbstufen oder Dithering-Effekte sind besonders bei großen Bildern störend sichtbar.
Ab GIF89a kann ein Farbeintrag der Palette als transparent definiert werden. Dadurch kann man an beliebigen Stellen die jeweilige Hintergrundfarbe durchscheinen lassen und z. B. den Eindruck erwecken, das Bild hätte eine nicht rechteckige Form. Teiltransparenz (Alpha-Transparenz) wie bei PNG ist damit aber nicht möglich: ein Pixel kann nur entweder „voll sichtbar“ oder „komplett durchsichtig“ sein.
Die maximale Größe von GIF-Bildern beträgt 65.535 × 65.535 Pixel.
GIF hat die MIME-Typen image/gif oder image/giff.
Kompressionsrate Die Kompressionsrate hängt entscheidend von der verwendeten Farbtabelle ab. Je weniger Farben die Farbtabelle enthält, desto größer ist die Kompressionsrate und umgekehrt. Die Kompressionsrate der links abgebildeten GIF-Datei ist vergleichsweise groß, weil ihre Farbtabelle nur 256 Farben enthält. Die Datei hat die Bildauflösung 1160 × 1376 Pixel und die Größe 740138 Byte. Würde jedes Pixel der Originaldatei mit der Farbtiefe 24 Bit gespeichert, dann hätte die Datei die Größe 1160 × 1376 × 24 Bit = 1160 × 1376 × 3 Byte = 4788480 Byte. Daraus ergibt sich die Kompressionsrate 4788480 / 740138 = 6,47.
Interlacing mini|Simulation des Interlace-Verfahrens Schon GIF87a unterstützt das Abspeichern von Bildern mit Interlacing. Das Bild wird hierbei nicht sequentiell von oben nach unten übertragen, sondern in vier Durchläufen mit steigender Auflösung. Das ermöglicht eine grobe Darstellung von erst teilweise übertragenen Bildern, was insbesondere bei den in den 1990er Jahren noch häufig langsamen Internetverbindungen genutzt wurde, um Bilder in Webseiten schon während des Ladevorganges grob darzustellen. Dabei werden die Bilddaten nicht der Reihenfolge nach abgespeichert, sondern zunächst jede 8. Zeile (von oben nach unten), dann jede 4., jede 2. und schließlich die verbleibenden. Bei der Anzeige der Grafik im Webbrowser werden diese Zeilen dann in zunächst 8-facher, dann 4-facher, schließlich doppelter Höhe angezeigt, bis alle Daten geladen sind und das Bild 1:1 dargestellt wird. Auf diese Weise hat der Betrachter auch bei sehr langsamer Verbindung noch relativ schnell eine grobe Voransicht, die dann mit zunehmender Datenmenge verfeinert wird. Eine bessere Methode (Adam7) wurde für das PNG-Format verwendet.
Bilder mit mehr als 256 Farben mini|150px|GIF-Bild mit 32.697 Farben, über mehrere Farbtabellen erzielt, eine per Bildblock. (Zeitverzögerter Aufbau durch nicht-spezifikationskonforme Interpretation der Browser eines Verzögerungswert von 0 ms) mini|210px|Eine Animation, die die Schaffung eines High Color GIF-Bildes veranschaulicht. Schon GIF87a bietet die Möglichkeit mehrere Einzelbilder, von denen jedes eine eigene Farbpalette (Local Color Table) haben kann, in einer Datei zu speichern. Diese Möglichkeit kann dazu verwendet werden Echtfarbenbilder (True-Color-GIFs) zu speichern. Anders als bei den animierten GIFs werden diese nicht nacheinander abgespielt, sondern nebeneinander aufgebaut. Dazu wird das ganze Bild schachbrettartig (Kachelgrafik) in Einzelbilder mit nicht mehr als 256 Farben aufgeteilt, die jeweils eine eigene Palette erhalten. So lassen sich Bilder mit 24 Bit Farbtiefe auch in GIF verlustfrei und standardkonform speichern und darstellen. Da die Einzelbilder unabhängig voneinander komprimiert werden und zudem je eine unkomprimierte lokale Farbpalette von 6 bis 768 Byte Länge erfordern, ist bei solchen „Echtfarben-GIFs“ insgesamt meist keine gute Kompressionsrate mehr zu erreichen.
True-Color-GIFs lassen sich z. B. mit PhotoImpact oder der freien unter der GPL stehenden ANGIF-Library von Phil Howard erzeugen. Konqueror, Apple Safari und Netscape Communicator 4.7x zeigen sie sofort und korrekt an. IrfanView, Firefox, Internet Explorer und Opera zeigen die einzelnen Frames jedoch nur mit Zwangspausen von ca. 100 ms dazwischen an, wodurch bis zum vollständigen Bildaufbau der Eindruck einer Animation entstehen kann.About the Animated GIF Format auf stykz.net (englisch) True-Color-GIFs lassen sich problemlos als 24-Bit-RGB-Bilder in das Grafikprogramm GIMP importieren aber nicht exportieren. Der Bildbetrachter XnView zeigte bis zur Version 1.96 schwere Grafikfehler, das Bild ist nicht erkennbar.XnView Changelog: “Animated GIF, decoding now in 32bits to support correclty format”, archiviert am 12. November 2015 Die Bildanzeige von Windows XP meldet nur einen Fehler und zeigt das Bild nicht an. Die Programme Reggae und SView5 zeigen die Dateien problemlos an.
Photoshop kann jegliche Varianten von GIF sowohl anzeigen als auch bearbeiten und speichern.
Eine weitere Technik, um mit GIFs Echtfarbbilder abbilden zu können, verwendet die mit GIF89a eingeführte Transparenz: es kann eine GIF-Datei als Serie von sich überlappenden Bildern mit jeweils eigener 256-Farb-Tabelle konstruiert werden, in welcher die darunterliegenden Bildanteile über transparente Einzel-Pixel der darüberliegenden sichtbar werden.
Echtfarben-GIFs erreichten bisher keine große Bekanntheit und Verbreitung, möglicherweise auch weil die meisten GIF-Decoder in Bildbetrachtern und Browsern spezifikationswidrig einen Verzögerungswert von 0 ms zwischen den Einzelframe des GIFs als typischerweise 100 ms interpretieren, obwohl die Spezifikation dies explizit verbietet:
Animationen mini|Eine sich immer wiederholende GIF-Animation der Erde Die Fähigkeit von GIF, mehrere Einzelbilder zu speichern, kann für Animationen genutzt werden. GIF ermöglicht Animationen, die sich ständig wiederholen (siehe Beispiel) oder Animationen, die nur einmal oder einige Male ablaufen, und dann beim letzten Bild stehen bleiben.
Eine offizielle Beschreibung des verwendeten Formates existiert nicht, es hat sich jedoch ein De-facto-Standard unter Browserherstellern etabliert. Dabei werden die Einzelbilder zeitverzögert nacheinander vom Webbrowser oder dem Bildbearbeitungsprogramm abgespielt. Durch diese Animationsmöglichkeit war erstmals auch die Übertragung kurzer, filmähnlicher Dateien möglich. Animierte GIFs erreichten deshalb große Verbreitung und sind auch weiterhin gebräuchlich.
Problematisch ist die fehlende Steuerung durch Nutzer, die ein animiertes GIF nicht pausieren oder erneut abspielen können. Dafür sind animierte SVGs besser geeignet, da sie mit CSS animiert werden können; mit prefers-reduced-animation aber abgefragt werden kann, ob dies im Betriebssystem oder Browser als nicht erwünscht abgeschaltet wurde.
GIF und die LZW-Patente 1994 entdeckte die Software-Firma Unisys, dass sie ein 1983 eingereichtes Softwarepatent auf das im GIF verwendete LZW-Verfahren hielt und forderte daraufhin von CompuServe Lizenzgebühren. Die beiden Unternehmen einigten sich darauf, dass CompuServe eine Lizenz von Unisys erhält, die dann an Hersteller kommerzieller Programme, die GIF verwenden, weitergegeben werden darf. CompuServe verlangte dafür eine Grundgebühr von einem US-Dollar sowie 1,5 % des Verkaufserlöses der Software, mindestens jedoch 15 Cent pro verkaufter Kopie.Lipp, S. 308 Die Gültigkeit dieser Lizenz beschränkte sich außerdem auf Programme, die mit dem CompuServe-Online-Dienst zusammenarbeiteten.