Aunque existe la posibilidad de crear animaciones gif utilizando el programa de diseño gráfico GIMP, en esta ocasión me gustaría indicaros una forma rápida y sencilla de hacerlo utilizando única y exclusivamente la terminal.
Con el truco que veremos podrás crear una animación sin preocuparte por el tamaño de las distintas imágenes que lo componen, crear capas para meter cada imagen o la necesidad de tener que repetir indefinidamente la secuencia de animación.
Procedimiento
Para crearlo nos valdremos de un viejo conocido: mogrify el cual utilizamos para redimensionar imágenes por lotes rápidamente desde la terminal.
En el caso que nos ocupa deberemos colocar en la misma carpeta todas las imágenes que queramos utilizar para crear la animación y lanzar desde la terminal la instrucción
mogrify -delay 200 -quality 20 -size 200 -loop 0 *.jpg imagenResultante.gif
teniendo en cuenta lo siguiente
- delay 200 permite una pausa de 2 segundos entre cada uno de los frames que componen la animación
- quality 20 es para reducir la calidad de las imágenes que estamos usando para crear el gif (para colgarlo de internet no interesa que el gif resultante sea excesivamente grande)
- size 200 es porque quiero que el ancho de la imagen resultante (el gif) sea de 200 píxeles
- loop 0 indica que queremos repetir indefinidamente la animación (al llegar a la última escena de la animación volverá automáticamente a la primera). Si no queremos que se repita en un bucle infinito lo único que debemos hacer es sustituir el 0 por un 1 (loop 1)
- *.jpg es para que procese todas las imágenes con dicha extensión
- imagenResultante.gif es el nombre para el fichero gif que queremos generar
Precauciones
Para que funcione correctamente debes colocarte en el mismo directorio en el que se encuentran las imágenes que compondrán el gif animado.
Para ello, desde Nautilus, basta hacer click con el botón derecho dentro de la carpeta que contiene las imágenes y seleccionar la opción de Abrir Terminal
Si no quieres o puedes cambiar de directorio deberás modificar la orden para que utilice rutas absolutas en lugar de las relativas. Si las imágenes las has colocado en el directorio /tmp/gif-animado quedaría del siguiente modo
mogrify -delay 200 -quality 20 -size 200 -loop 0 /tmp/gif-animado/*.jpg /tmp/gif-animado/imagenResultante.gif
Espero que no tengas problemas para encontrar el cambio 😉
Un dato que te recomendaría modificar para actualizar el post ya que a mi no me funcionó y lo tuve que averiguar externamente: mogrify ya no es más utilizado para hacer eso dentro de ImageMagick. En su reemplazo se puso a ‘convert’. Las opciones siguen siendo válidas 😉 . Espero te sirva!
Saludos!
Muy bueno el blog 🙂
Me gustaMe gusta
Muchas gracias, ya lo ensaye con convert y funcionó de una.
Me gustaMe gusta
Muchas gracias por el apunte… muy útil.
Me gustaMe gusta
Muy bueno el blog, gracias
Me gustaMe gusta
no me funsiona, no se que hago mal:
hice una carpeta «gif-animado» con solo imagenes .jpg en la ubicacion /tmp
ejecuto
mogrify -delay 200 -quality 20 -size 200 -loop 0 /tmp/gif-animado/*.jpg /tmp/gif-animado/imagenResultante.gif
y me devuelve:
mogrify: unable to open image `/tmp/gif-animado/imagenResultante.gif’: No existe el archivo o directorio @ blob.c/OpenBlob/2480.
que pasa???, necesito algun repositorio???
Me gustaMe gusta
@Manuel, sigue la anotación que aparece en el apdo. «Precauciones»: …Para que funcione correctamente debes colocarte en el mismo directorio en el que se encuentran las imágenes que compondrán el gif animado…
Suerte y un saludo
Me gustaMe gusta
Utiliza el comando convert en vez del mogrify, como dice leoechevarria en el primer comentario.
Me gustaMe gusta
No me funciona, me pasa lo mismo que a Manuel w, pero yo sí estoy en el mismo directorio.
Ejecuto:
mogrify -delay 50 -quality 20 -loop 0 *.png salida.gif y me canta el mismo error de que no encuentra salida.gif
Me gustaMe gusta
Me funcionó la animación con convert, pero no con mogrify.
Esto no funcionó (daba error de no encontrar nieves.gif):
mogrify -delay 50 -quality 20 -loop 0 *.png?0 nieves.gif
Pero esto sí:
convert -delay 50 -quality 20 -loop 0 *.png?0 nieves.gif
Me gustaMe gusta
Gracias por compartirlo @Lujan
Me gustaMe gusta
Actualiza! XD
Muy bueno, como siempre 🙂
Me gustaMe gusta
¿actualiza?
Me gustaMe gusta
La opcion «-geometry # » en donde uso # para indicar numero permite ver la imagen mas o menos grande (por ejemplo 400)
Y tambien me parece que es necesario indicar que esto es posible si se tiene instalado ImageMagick tal y como dice eoechevarria. Esto lo digo por si alguien tiene otra distro que tal vez no tenga imagemagick tambien pueda aprovechar esta util informacion!. Y tambien pueden usar imagemagick para otras cosas e investigando un poco pueden ver lo poderoso de este programa!
Y gracias Informatico de Guardia por la info tan precisa, clara y funcional!
Me gustaMe gusta
Gracias a ti por comentar y aportar mejoras al artículo
Me gustaMe gusta
Gracias, pero me toma las imágenes en un orden diferente, cómo puedo escoger el orden en que las presenta?
Me gustaMe gusta
Observa que se tendrá en cuenta el nombre de los ficheros a la hora de incluirlos en la animación por lo que te recomiendo cambiar el nombre de forma que queden ordenados como te interese.
Siento curiosidad, quedo a la espera de saber si has logrado resolverlo.
Un saludo Jose
Me gustaMe gusta