Crear gifs por linea de comando utilizando Image Magick
En ocasiones ocurre que la mejor manera de explicar una idea es a través de una imagen, pero una imagen estática no siempre logra transmitir el sentido de un concepto dinámico. Cuando esto ocurre es una buena herramienta de comunicación los archivos animados gifs.
En este artículo veremos como crear gifs sencillos por linea de comando utilizando Image Magick, un software opensource licenciado bajo Apache 2.0 utilizada para mostrar, convertir y editar archivos de imágenes e imágenes de vector.
En este artículo veremos como crear archivos .gif de manera sencilla por linea de comando.
Instalar Image Magick
Podemos instalar el software desde el repositorio
sudo apt-get install imagemagick
Creación de .gifs
Para este ejemplo utilizaremos estas cuatro imágenes para generar un .gif
Con la siguiente linea convertimos todos los archivos .png de la carpeta en un .gif llamado animacion.gif
convert -delay 100 -loop 0 *.png animation.gif
Retardo
Si disminuimos el valor del -delay observamos como el cambio entre imágenes es más rápida. Este argumento se utiliza para definir el tiempo en el que cada imagen debe mostrarse por pantalla.
convert -delay 20 -loop 0 *.png animacion.gif
También es posible seleccionar imágenes especificas simplemente listando los archivos
convert -delay 20 -loop 0 arriba.png abajo.png animacion.gif
Ciclo
Cuando el valor loop está definido en 0 el gif hace un bucle infinito, de otra manera se repite tantas veces como especificado en el argumento -loop
convert -delay 20 -loop 2 *.png animacion.gif
Mostrar varias imágenes
Es posible definir el tamaño total del gif utilizando la opción -size seguido por el ancho y altura en píxeles
El color de fondo puede definirse con el argumento xc:nombreColor
Cada imagen que aparecerá en el gif se coloca con la opción -page seguido por la ubicación inicial con el formato +x+y
convert -delay 100 -size 600x600 xc:Black \
-page +0+0 arriba.png \
-page +300+0 abajo.png \
-page +0+300 izquierda.png \
-page +300+300 derecha.png \
-loop 0 animacion.gif
Es posible cambiar el color de fondo modificando el valor xc
convert -delay 100 -size 1000x1000 xc:Violet \ -page +50+50 arriba.png \ -page +500+50 abajo.png \ -page +50+500 izquierda.png \ -page +500+500 derecha.png \ -loop 0 animacion.gif
Para que cada imagen desaparezca al agregar la anterior colocamos la opción -dispose con el argumento previous
convert -delay 100 \ -dispose previous \ -size 1000x1000 xc:Violet \ -page +50+50 arriba.png \ -page +500+50 abajo.png \ -page +50+500 izquierda.png \ -page +500+500 derecha.png \ -loop 0 animacion.gif
Para que el fondo quede fijo mientras que las imágenes aparecen y desaparecen colocamos un delay 0 y un dispose none para el fondo y su propia configuaracion para las imaágenes
convert -delay 0 -dispose none -size 1000x1000 xc:Violet \ -dispose previous -delay 100 \ -page +50+50 arriba.png \ -page +500+50 abajo.png \ -page +50+500 izquierda.png \ -page +500+500 derecha.png \ -loop 0 animacion.gif
Con el argumento background de la opción dispose la imagen no solo desaparece al terminar su tiempo de delay sino que se limpia el espacio que ha ocupado. Esto puede verse fácilmente cuando se ha definido el fondo.
convert -delay 0 -dispose none -size 1000x1000 xc:steelblue \ -dispose background -delay 100 \ -page +50+50 arriba.png \ -page +500+50 abajo.png \ -page +50+500 izquierda.png \ -page +500+500 derecha.png \ -loop 0 animacion6.gif
Estas son algunas de las muchas funcionalidades que brinda Image Magick para la creación de imágenes animadas. Espero que les sirva!