pygifme es un script en python que he portado como desarrollo en base al script original gifme escrito en ruby de Zach Holman (GitHub).
El script de ruby es bastante antiguo, pero al utilizarlo y ver su código para ver como funcionaba se me ocurrió portarlo a python como simple práctica y prueba al tratarse de algo sencillo y sin demasiadas dependencias.
La funcionalidad es exactamente la misma, añadiendo un par de pequeños cambios y realizando comprobaciones más exhaustivas internamente. Por respetar el nombre antiguo del script y que no fuera muy largo de escribir lo he llamado “pygifme”. Es bastante útil para generar un .gif desde varias imágenes y evitarse complicaciones con editores gráficos de imágenes.
pygifme instalación
Esta disponible desde pypi (Python Package Index) y desde mi repositorio de código github.
Agradecería las pruebas que se realicen con el script, propuestas de mejoras y reporte de sugerencias si lo deseas.
Instalación
Puede instalarse fácilmente desde pypi con:
$ pip3 install pygifme
También puede instalarse vía el archivo setup.py:
$ python3 setup.py install
También es necesario instalar ImageMagick.
En sistemas GNU/LINUX Debian:
$ sudo apt-get install imagemagick
En OS X, es fácil usando Homebrew:
$ brew install imagemagick
Este script es para Python >= 3.0. También necesita del módulo de python argcomplete si deseas que el autompletado en línea de comandos de pygifme
Puedes instalarlo con:
$ sudo pip3 install argcomplete
O via el archivo requirements.txt:
$ sudo pip3 install -r requirements.txt --use-mirrors
Uso
$ pygifme ~/Desktop/1.png ~/Desktop/2.png
You now have a handsome animation at ~/Desktop/animated.gif
Por supuesto también puedes agrupar archivos con glob:
$ pygifme ~/Desktop/*.jpg
You now have a handsome animation at ~/Desktop/animated.gif
CloudApp
Una vez que tu animación haya finalizado, se intentará subir a CloudApp. Si tienes el script de cloudapp instalado, se usara, de lo contrario se omitirá este paso.
Usos super avanzados
En algunos gifs, es bonito tener un bucle suave, para que cuando termine no haya un salto hasta el último fotograma al primero otro vez. Usa la opción ‘–reverse’ o ‘-r’ para crear una animación normal y posteriormente revertir los fotogramas y que estos sean añadidos a la animación, de esta forma parecerá una transición suave.
$ pygifme --reverse ARCHIVOS
Si pasas una URL de un gif (archivo remoto) en lugar de ARCHIVOS, el programa descargará el gif, lo dividirá en fotogramas y te permitirá recrearlo. Por ejemplo, puede tomar un gif online y darle la vuelta con ‘–reverse’:
$ pygifme --reverse http://tumblr.com/some-crazy.gif
También puedes redimensionarlos. Por defecto el tamaño es de 500 píxeles, pero puede cambiarse a lo que necesites.
$ pygifme --width 1000 http://tumblr.com/some-crazy.gif
Para otras muchas más opciones, comprueba la ayuda con:
$ pygifme -h
Ejecutando los test unitarios
Es un simple script, pero puede tener comportamientos inesperados cuando se hacen cosas extrañas con el backend de ImageMagick. Si deseas asegurarte de un comportamiento común, entonces puedes ejecutar la batería de pruebas unitarias con:
$ python3 -m unittest test
O también desde el archivo setup.py (recomendado):
$ sudo python3 setup.py test