Der Code dieser Seite ist nicht gestartet.

Wird index.html direkt aus einem Ordner geöffnet, blockiert der Browser JavaScript-Module, und wenn Sie ein GIF auswählen, passiert nichts. Stellen Sie den Ordner stattdessen über HTTP bereit:

powershell -ExecutionPolicy Bypass -File serve.ps1

Öffnen Sie dann http://localhost:8080/.

GIF analysieren — was wirklich in einem GIF steckt

Einzelbilder, Anzeigedauern, Farbtabellen und wohin jedes Byte gegangen ist.

Sprache: Deutsch
Quellcode ansehen
Ihre GIFs werden in Ihrem Browser verarbeitet. Kein Upload zur Verarbeitung.

Geöffnet und auseinandergenommen wird die Datei von Ihrem eigenen Browser. Die Blockstruktur, die LZW-Entpackung und jedes auf dieser Seite gezeichnete Einzelbild entstehen auf diesem Gerät. Am anderen Ende dieser Seite steht gar kein Server, an den eine Datei gehen könnte, selbst wenn hier irgendetwas das wollte.

Live-Prüfung: wird geprüft…

Offline: wird geprüft…

Sie müssen uns nicht glauben. Öffnen Sie die DevTools, sehen Sie im Tab „Netzwerk“ zu und analysieren Sie ein GIF. Keine einzige Anfrage trägt ein Bild, ein Vorschaubild oder einen Dateinamen. Oder trennen Sie die Internetverbindung und analysieren Sie trotzdem eines.

Ein GIF auswählen

Als Markdown ansehen

So analysieren Sie ein GIF

  1. Wählen Sie ein GIF aus. Ziehen Sie es auf das Auswahlfeld oder suchen Sie es von Hand heraus. Der Browser liest es direkt von Ihrer Festplatte, und dabei geht nichts nach draußen.
  2. Lesen Sie zuerst die Übersicht. Die Leinwandgröße, die Zahl der Einzelbilder, wie lange die Animation laut Datei läuft und wie lange sie tatsächlich spielt. Die letzten beiden gehen häufiger auseinander, als man denkt, und der Grund steht im nächsten Abschnitt.
  3. Sehen Sie sich an, was auffällt. Jede Zeile dort ist an Ihrer Datei gemessen: Anzeigedauern, an die sich kein Browser hält, ein fehlender Wiederholungsblock, Farbtabellen, auf die nichts verweist, Metadaten, die größer sind als manche Einzelbilder. Nichts davon ist eine Vermutung darüber, was Sie vorhatten.
  4. Sehen Sie, wohin die Bytes gegangen sind. Jedes Byte der Datei steht in genau einer Zeile, und die Zeilen ergeben zusammen die Datei. Wenn das meiste davon nicht bei „komprimierte Pixel“ steht, sagt Ihnen der Rest der Tabelle, wo es stattdessen liegt.
  5. Gehen Sie die Einzelbilder durch. Jedes zeigt seine Anzeigedauer, sein Rechteck, seine Entsorgungsart und seine Größe. Schalten Sie zwischen „die Leinwand nach jedem Einzelbild“ und „nur, was jedes Einzelbild speichert“ um. Am zweiten sehen Sie, ob die Datei optimiert ist, denn ein gut gemachtes GIF speichert winzige Rechtecke und ein schlecht gemachtes jedes Mal das ganze Bild.
  6. Nehmen Sie den Bericht mit, wenn Sie ihn brauchen. Die ganze Analyse als reiner Text, zum Einfügen in eine Nachricht oder zum Aufheben neben der Datei. Er entsteht auf der Seite aus dem, was ohnehin schon auf Ihrem Bildschirm steht.

Die ausführliche Fassung

Was wirklich in einem GIF steckt Einzelbilder, Verzögerungen, Aufräummethoden und Farbtabellen erklärt, warum Browser die schnellsten Verzögerungen verweigern, und wie Sie herausfinden, wohin die Dateigröße eines GIFs wirklich geht.

Fragen

Wird mein GIF irgendwohin hochgeladen?

Nein. Ihr eigener Browser liest, entpackt und zeichnet die Datei auf Ihrer eigenen Hardware. Eine Serverseite hat dieses Werkzeug nicht, und in der Content-Security-Policy der Seite steht jede Adresse, die sie kontaktieren darf; keine davon gehört uns. Trennen Sie die Netzverbindung, und es analysiert weiter GIFs.

Warum läuft mein GIF langsamer, als die Anzeigedauern sagen?

Weil jeder Browser sich weigert, eine Dauer unter zwei Hundertstelsekunden einzuhalten, und das Einzelbild stattdessen eine Zehntelsekunde stehen lässt. Diese Regel wurde 1996 in Netscape geschrieben, für die rotierenden Globen und Baustellenschilder jener Zeit, und seither in jeden Browser übernommen. Entfernt hat sie nie jemand.

Ein GIF, dessen Einzelbilder alle 0,01 s angeben, läuft also nicht mit 100 Bildern je Sekunde, sondern mit 10, und damit fünf- bis zehnmal langsamer, als das erzeugende Programm es vorhatte. Diese Seite zeigt beide Zahlen, also was die Datei sagt und was sie wirklich tut, und markiert die betroffenen Einzelbilder. Der Ausweg liegt im Programm, das die Datei geschrieben hat: 0,02 statt 0,01 schreiben.

Was bedeutet „Entsorgung“?

Was auf dem Bildschirm stehen bleibt, wenn die Zeit eines Einzelbildes abgelaufen ist. Dieses Feld entscheidet darüber, ob eine Animation richtig aussieht oder schmiert.

Stehen lassen heißt, das nächste Einzelbild malt darüber, und das will man, wenn die Einzelbilder deckend sind und einander verdecken. Auf den Hintergrund zurücksetzen wischt zuerst das Rechteck des Einzelbildes frei, und genau das braucht Transparenz. Ohne das zeigen die durchsichtigen Stellen des nächsten Einzelbildes das vorherige darunter. Wiederherstellen, was darunter war legt zurück, was vor diesem Einzelbild dort stand, und so wird ein kleines bewegtes Objekt vor ruhigem Hintergrund gespeichert. Und nicht angegeben heißt, die Datei hat nichts dazu gesagt; jedes Anzeigeprogramm behandelt das als „stehen lassen“.

Warum ist mein GIF so groß?

Die Tabelle „Wohin die Bytes gegangen sind“ beantwortet das für Ihre konkrete Datei statt im Allgemeinen, und es gibt nur wenige mögliche Antworten.

Steckt fast alles in komprimierten Pixeln, ist die Datei schlicht viel Bild. Ein GIF speichert jedes Einzelbild als vollständige Pixel, ohne Bewegungsausgleich und ohne Qualitätsregler, die Größe ist also ungefähr die Fläche mal die Zahl der Einzelbilder. Weniger Einzelbilder, kleinere Maße oder weniger Farben sind die einzigen Hebel.

Steckt ein großer Teil in Farbtabellen, schreibt die Datei je Einzelbild eine eigene Palette zu je 768 Byte. Steckt ein großer Teil in Metadaten, hat ein Bearbeitungsprogramm ein XMP-Paket hinterlassen, und das lässt sich entfernen, ohne das Bild anzurühren. Und wenn alle Einzelbilder die ganze Leinwand bedecken, hat der Kodierer nie herausgearbeitet, welcher Teil sich wirklich geändert hat. Bei allem Gefilmten oder Aufgezeichneten ist das der größte Teil der Datei.

Was ist der Unterschied zwischen den beiden Ansichten?

Die Leinwand nach jedem Einzelbild ist das, was ein Anzeigeprogramm in diesem Moment zeigt: dieses Einzelbild über allem, was die vorherigen hinterlassen haben. Nur, was jedes Einzelbild speichert ist das Rechteck, das die Datei für dieses Einzelbild wirklich enthält, für sich allein und ohne etwas darunter.

Interessant ist das zweite. Ein GIF darf ein Einzelbild als nur den veränderten Teil des Bildes speichern, und deshalb kann eine Bildschirmaufnahme eines weitgehend stillen Fensters klein sein. Ist in Ihrer Datei jedes Einzelbild die volle Leinwand, hat diese Arbeit niemand geleistet. Ansehen kann man der Animation das nicht, man muss nachsehen, was gespeichert ist.

Es sagt, in meiner Datei stehe ein Kommentar oder XMP. Was ist das?

Text, der neben dem Bild mitreist und den kein Anzeigeprogramm zeichnet. Ein Kommentarblock ist meist der Name des Programms, das die Datei geschrieben hat. Ein XMP-Paket ist das XML, in dem ein Bildbearbeitungsprogramm festhält, was es getan hat, und es kann den Bearbeitungsverlauf, die Programmversion und manchmal den Namen des Autors enthalten.

Diese Seite druckt beides vollständig aus, denn die interessante Frage bei Metadaten ist, was darin steht, und nicht, dass es sie gibt. Zu sehen bekommen es Sie, und sonst niemand: Nichts in diesem Repository liest davon etwas an irgendwen aus.

Öffnet es auch ein beschädigtes GIF?

Es versucht es und sagt Ihnen, wo es aufgegeben hat. Eine Datei, die mitten in einem Block endet, an der Stelle einer Blockmarke ein anderes Byte hat oder ein Einzelbild trägt, dessen komprimierte Daten vorzeitig ausgehen, zeigt trotzdem alles, was bis dahin lesbar war, mit dem Problem obenan benannt. Genau dafür will man eine Analyse am dringendsten, deshalb wäre es falsch, wegen eines schlechten Bytes die ganze Datei wegzuwerfen.

Verändert es meine Datei?

Nein. Dieses Werkzeug liest nur. Es gibt keine Ausgabedatei, keine Neukodierung und keinen Knopf, der ein GIF schreibt. Herunterladen können Sie einzig eine Textfassung der Analyse. Ihr Original liegt unangetastet auf Ihrer Festplatte, was zugleich die ehrliche Antwort darauf ist, was passiert, wenn Sie den Tab schließen.

Ist es kostenlos, und brauche ich ein Konto?

Es ist kostenlos, ohne Konto, Anmeldung oder Probezeit. Das Lesen einer Datei hängt weiterhin vom Speicher Ihres Geräts ab. Die Darstellung endet nach 300 Millionen dekodierten Pixeln oder bei geschätzten 512 MiB an Puffern dieser Seite; das ist keine Grenze für den gesamten Browserspeicher. Danach oder nach einem Abbruch bleiben Kopfzeilen, Bytebilanz und Zeitangaben verfügbar. Nicht gezeichnete Frames werden anhand ihrer Kopfzeilen beschrieben; vollständige Pixelnutzungszahlen und die native Animationsvorschau sind nicht verfügbar. Der erste Parserlauf und native Speicher- oder Canvas-Operationen lassen sich nicht mitten im Aufruf unterbrechen. Die Website enthält Werbung; die Anzeigen erhalten keine Angaben zu Ihrer Datei.

Funktioniert es offline?

Ja. Laden Sie die Seite einmal, trennen Sie dann die Internetverbindung, und sie arbeitet weiter. Das ist zugleich der einfachste Beweis dafür, dass nichts hochgeladen wird. Ein Werkzeug, das Ihr GIF zum Analysieren wegschickt, bliebe in dem Moment stehen, in dem Sie den Stecker ziehen.