Sie können dies mit GIFsicle mit den folgenden Optionen tun :
gifsicle -U --disposal=previous --transparent="#ffffff" -O2 anim.gif > anim_trans.gif
wo anim.gif
und anim_trans.gif
sind die Quell- und Zieldateinamen und #ffffff
ist der Hex - Code von der gewünschten Farbe transparent (hier reinweiß) zu machen.
(Die wichtigsten Optionen hier sind -U
/ --unoptimize
und --disposal=previous
, die die Animation zusammen in den "Daumenkino-Modus" konvertieren, in dem jedes Bild vollständig gelöscht wird, bevor das nächste gezeichnet wird. Auf diese Weise können die Bilder mit zusätzlicher Transparenz versehen werden, ohne dass die vorherigen Bilder durch das angezeigt werden transparente Teile: -O2
Diese Option ist nicht unbedingt erforderlich, kann jedoch die Dateigröße der resultierenden Animation verringern, indem die Frames optimiert werden, um zu vermeiden, dass statische Teile der Animation unnötig neu gezeichnet werden.)
Zur Demonstration sehen Sie hier eine Animation des humanen Glyoxalase I (GLO1) -Enzyms aus Wikimedia Commons (links) und dieselbe Animation mit Transparenz, die mit der oben gezeigten Methode hinzugefügt wurde (rechts):
Originalanimation von Wikimedia Commons-Benutzer WillowW , verwendet unter der CC-By 3.0- Lizenz.
Ein erwähnenswertes Detail ist, dass, wenn der GIFsicle-Befehl keine Wirkung zu haben scheint, Sie überprüfen sollten, ob die Hintergrundfarbe wirklich korrekt ist. Beispielsweise stellte sich für die oben gezeigte Animation heraus, dass die tatsächliche Hintergrundfarbe eher #fdfffc
(dh sehr leicht gelb-grünlich weiß) als #ffffff
(rein weiß) war. Man kann den Unterschied nicht wirklich mit den Augen erkennen (oder zumindest kann ich das auf diesem Bildschirm nicht tun), aber es ist genug, um GIFsicle zu veranlassen, die beiden Farben als unterschiedlich zu betrachten.
Beachten Sie auch, dass GIF-Dateien nur 1-Bit-Transparenz unterstützen, was bedeutet, dass die Kanten der transparenten Bereiche nicht geglättet werden. Dies ist in Ordnung, solange der Hintergrund, auf dem Sie die Animation anzeigen, nicht zu weit von der ursprünglichen Hintergrundfarbe entfernt ist. In diesem Fall kann es jedoch zu unschönen Farbsäumen an den Rändern der Animation kommen. Leider können Sie nicht viel dagegen tun, außer einen passenderen Hintergrund zu wählen oder die Animation neu zu rendern.