I was surprised today to find apparently how difficult it is to go from a webp
animation to gif
animation. My GIMP 2.8.22
and ImageMagick 7.0.7-21
on linux 4.14.13-1-ARCH
don't seem to support the format, and the only tool available in repos seem to be libwebp 0.4.1
which includes a decode tool that lets you extract individual frames to some image formats, none of them being gif (It's a licensing problem maybe?)
Anyway, I used the following script:
#!/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
Which creates a gif animation from the extracted frames of the file supplied in the first argument.
I tried it on this file and the resulting file was kind of artifacty. Is it proper form to post in this forum for suggestions of improvement of the procedure/invocations?
And: If there are custom tools for this conversion, please share your knowledge! :)