GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Animation Webp en animation Gif (cli) ?

J'ai été surpris aujourd'hui de constater apparemment à quel point il est difficile de passer d'un webp animation en gif animation. Mon GIMP 2.8.22 et ImageMagick 7.0.7-21 sur linux 4.14.13-1-ARCH ne semblent pas prendre en charge le format, et le seul outil disponible dans les dépôts semble être libwebp 0.4.1 qui inclut un outil de décodage qui vous permet d'extraire des images individuelles dans certains formats d'image, aucun d'entre eux n'étant gif (c'est peut-être un problème de licence ?)

Quoi qu'il en soit, j'ai utilisé le script suivant :

#!/bin/bash

DELAY=${DELAY:-10}
LOOP=${LOOP:-0}
r=`realpath $1`
d=`dirname $r`
pushd $d > /dev/null
f=`basename $r`
n=`webpinfo -summary $f | grep frames | sed -e 's/.* ([0-9]*)$/1/'`
pfx=`echo -n $f | sed -e 's/^(.*).webp$/1/'`
if [ -z $pfx ]; then
    pfx=$f
fi

echo "converting $n frames from $f 
working dir $d
file stem '$pfx'"

for ((i=0; i<$n; i++)); do
    webpmux -get frame $i $f -o $pfx.$i.webp
    dwebp $pfx.$i.webp -o $pfx.$i.png
done

convert $pfx.*.png -delay $DELAY -loop $LOOP $pfx.gif
rm $pfx.[0-9]*.png $pfx.[0-9]*.webp
popd > /dev/null

Ce qui crée une animation gif à partir des images extraites du fichier fourni en premier argument.

Je l'ai essayé sur ce fichier et le fichier résultant était une sorte d'artefact. Est-il convenable de poster dans ce forum des suggestions d'amélioration de la procédure/invocations ?

Et :S'il existe des outils personnalisés pour cette conversion, merci de partager vos connaissances ! 🙂

Réponse acceptée :

Votre script fonctionne très bien, mais vous devez mettre à zéro vos noms de cadre individuels ; sinon, il crée le gif avec des cadres dans un ordre confus. J'ai corrigé cela et l'ai essayé sur quelques animations giphy webp (y compris votre exemple) et le résultat est ce à quoi vous vous attendiez.

Vous trouverez ci-dessous votre script avec deux modifications. Tout d'abord, un for modifié boucle pour mettre à zéro ces noms de fichiers de trame. Deuxièmement, j'ai ajouté une autre vérification webpinfo pour saisir la durée de la trame et l'utiliser (si> 0) pour DELAY (en supposant naïvement que les gens n'utilisent pas de durées de trame variables):

#!/bin/bash

DELAY=${DELAY:-10}
LOOP=${LOOP:-0}
r=`realpath $1`
d=`dirname $r`
pushd $d > /dev/null
f=`basename $r`
n=`webpinfo -summary $f | grep frames | sed -e 's/.* ([0-9]*)$/1/'`
dur=`webpinfo -summary $f | grep Duration | head -1 |  sed -e 's/.* ([0-9]*)$/1/'`

if (( $dur > 0 )); then
    DELAY = dur
fi

pfx=`echo -n $f | sed -e 's/^(.*).webp$/1/'`
if [ -z $pfx ]; then
    pfx=$f
fi

echo "converting $n frames from $f 
working dir $d
file stem '$pfx'"

for i in $(seq -f "%05g" 1 $n)
do
    webpmux -get frame $i $f -o $pfx.$i.webp
    dwebp $pfx.$i.webp -o $pfx.$i.png
done

convert $pfx.*.png -delay $DELAY -loop $LOOP $pfx.gif
rm $pfx.[0-9]*.png $pfx.[0-9]*.webp
popd > /dev/null

Linux
  1. Linux – Les différents noyaux Linux/unix sont-ils interchangeables ?

  2. Comment convertir une bande Png en gif ?

  3. Tidal CLI Client - Diffusez de la musique Tidal à partir de la ligne de commande Linux

  4. Peek - Un enregistreur d'écran Gif animé simple pour Linux

  5. Convertir des images Webp en PNG par la commande Linux

Comment vérifier la vitesse d'Internet sous Linux à l'aide de Speedtest CLI

Comment convertir une vidéo en GIF sous Linux [Méthodes Terminal et GUI]

7 façons de vérifier la vitesse du réseau sous Linux avec navigateur et cli

Comment installer et utiliser WP CLI sous Linux

Comment installer et configurer Angular CLI sur les distributions Linux

Comment désactiver le Wi-Fi sur le système Linux :méthodes GUI et CLI