Vous pouvez le faire avec GIFsicle , en utilisant les options suivantes:
gifsicle -U --disposal=previous --transparent="#ffffff" -O2 anim.gif > anim_trans.gif
où anim.gif
et anim_trans.gif
sont les noms des fichiers source et de destination, et #ffffff
est le code hexadécimal de la couleur que vous souhaitez rendre transparente (ici, blanc pur).
(Les options importantes ici sont -U
/ --unoptimize
et --disposal=previous
, qui convertissent ensemble l'animation en "mode flipbook", où chaque image est entièrement effacée avant de dessiner la suivante. Cela permet d'ajouter une transparence supplémentaire aux images sans laisser les images précédentes apparaître à travers le parties transparentes. L' -O2
option n'est pas strictement nécessaire, mais elle est susceptible de réduire la taille du fichier de l'animation résultante en optimisant les images pour éviter de redessiner inutilement les parties statiques de l'animation.)
Pour une démonstration, voici une animation de l'enzyme glyoxalase I (GLO1) humaine de Wikimedia Commons (à gauche), et la même animation avec transparence ajoutée en utilisant la méthode indiquée ci-dessus (à droite):
Animation originale de l'utilisateur de Wikimedia Commons WillowW , utilisée sous la licence CC-By 3.0 .
Un détail à noter est que, si la commande GIFsicle ne semble pas avoir d'effet, vous devez vérifier que la couleur d'arrière-plan est vraiment correcte. Par exemple, pour l'animation illustrée ci-dessus, la couleur d'arrière-plan réelle s'est révélée être #fdfffc
(c'est-à-dire très légèrement jaune-verdâtre) plutôt que #ffffff
(blanc pur). Vous ne pouvez pas réellement faire la différence à l'œil nu (ou, du moins, je ne peux pas faire cela sur cet écran), mais cela suffit pour que GIFsicle considère les deux couleurs différentes.
Notez également que les fichiers GIF ne prennent en charge que la transparence 1 bit, ce qui signifie que les bords des régions transparentes ne seront pas anticrénelés. C'est OK tant que l'arrière-plan sur lequel vous montrez l'animation n'est pas trop loin de la couleur d'arrière-plan d'origine, mais si c'est le cas, vous constaterez peut-être qu'il y aura une frange de couleur moche autour des bords de l'animation. Malheureusement, vous ne pouvez pas faire grand-chose à ce sujet, sauf pour choisir un arrière-plan plus adapté ou pour restituer l'animation.