Warum ein Wasserzeichen auf einem GIF hartnäckiger ist als auf einem Foto
Ein Foto ist ein Bild, ein GIF ist eine Zeitachse. Wer Wasserzeichen aus animierten GIFs entfernen will, muss drei Fragen beantworten, die ein Werkzeug für Standbilder nie stellen muss: Wie lassen sich die Frames dekodieren? Wie bleibt die Reparatur über alle Frames hinweg konsistent? Und wie lässt sich das Ergebnis neu kodieren, ohne die Farben zu ruinieren?
Dekodieren: Frames sind keine eigenständigen Bilder
Viele animierte GIFs speichern nur die Pixel, die sich gegenüber dem vorherigen Frame geändert haben, dazu eine Anweisung, was danach mit diesem Bereich geschehen soll (Disposal). Um Frame 12 korrekt zu reparieren, muss erst wiederhergestellt werden, wie Frame 12 tatsächlich aussieht — und das heißt, die Disposal-Kette ab Frame 0 abzuspielen. Dieses Werkzeug erledigt das mit einem Streaming-Compositor, der höchstens vier Canvases gleichzeitig hält; ein GIF mit 60 Frames bläht sich also nicht zu 60 vollen Bitmaps auf.
Reparieren: eine Maske, viele Frames
In jedem Frame eine eigene Auswahl zu malen wäre unzumutbar, deshalb markierst du die Fläche einmal im ersten Frame, und diese Maske wird wiederverwendet. Genau deshalb funktioniert es am besten bei Overlays, die an einer Stelle bleiben: ein Ecklogo, ein Datumsstempel, ein Untertitelbalken. Ein Overlay, das durchs Bild wandert, lässt sich mit einer einzigen Maske nicht beschreiben.
Alle Frames durch das Modell zu schicken wäre außerdem Verschwendung. Vor der Reparatur wird der markierte Bereich mit derselben Fläche im vorherigen Frame verglichen; stimmen sie praktisch überein, wird das frühere Ergebnis übernommen und das Modell übersprungen. Bei einer Bildschirmaufnahme mit festem Wasserzeichen kommt ein beträchtlicher Teil der Frames überhaupt nicht mit dem Modell in Berührung — wer ein GIF Wasserzeichen online entfernen will, merkt den Unterschied vor allem bei langen Aufnahmen.
Neu kodieren: warum eine gemeinsame Palette zählt
GIF fasst nur 256 Farben. Wird jedes Frame einzeln quantisiert, landet dieselbe Farbe von Frame zu Frame auf einem anderen Palettenindex — beim Abspielen flackern die Farben. Deshalb werden bis zu acht Frames über die Animation verteilt abgetastet, aus dieser Montage eine einzige Palette gebaut und jedes Frame dagegen abgebildet. Transparenz bekommt einen eigenen Platz in dieser Palette, statt einer echten Farbe den Platz wegzunehmen.
Diese Kette unterscheidet einen echten GIF-Wasserzeichen-Entferner von einem Bildeditor, der zufällig auch GIFs importieren kann: Die Animation wird als Folge voneinander abhängiger Frames behandelt, nicht als ein Bild, das man reinigt und beim Export plattwalzt.
