Imagemagick 3: Hacer GIFs animados

 

Tengo una secuencia de imagenes JPEG’s en una carpeta y quiero hacer con ellas un gif animado…

Asi a bote pronto, tenemos dos opciones:

1.- añadir las imagenes una a una como capas de un fichero de gimp y luego guardar el fichero como gif animado, seleccionando diversas opciones en diversas ventanas.

2.- Entrar en la carpeta desde un terminal y ejecutar :

convert -delay 20 -loop 0 *.jpg animacion.gif

Este seria el escenario mas sencillo, pero podemos complicarlo aun más. Si queremos trabajar con transparencias para colocar los gifs en una web y respetar los colores de fondo, tendremos que utilizar un comando un poco mas complicado.

El Achiforme que corre bajo estas lineas es una coleccion de 97 fotogramas en png, con una sombra semitransparente y un fondo completamente transparente… Sin embargo el formato gif solo admite transparencias totales, es decir, opaco o transparente. No admite matices.

De modo que si ejecutamos el comando anterior obtendriamos algo tan bizarro como esto:

achi0019uno de los fotogramas en png

achicorre2un gif animado bien raro…

el resultado debería ser más algo como esto:

achicorrecon fondo blanco

achicorreo con cualquier otro fondo…

El comando debería ser algo así:
convert -dispose background -channel A -threshold 75% -delay 5 -loop 0 *.png achicorre.gif

 

Desglose del comando:

- dispose background: para borrar el lienzo al cambiar de fotograma.

- channel A -threshold 75%: aumenta el umbral del canal alfa (transparencia) para que se vea la sombra mas oscura (en el png de origen la sombra es traslucida, y el gif no guarda transparencias)

- delay 5: para retrasar 5 milisegundos el cambio de fotograma

- loop 0: crea un loop indefinido de la animación. Con un valor x se repetirá x veces la animación.