El arte de Python-Fu (cinturón blanco)
Este post fue migrado de un blog hecho con Wordpress. Si se ve mal, dejame un comentario y lo arreglo.
Como parte de mi aprendizaje del lenguaje de programación Python y por la necesidad de generar automáticamente algunos dibujos, incurcioné en el milenario arte del Python-Fu.
Si querés conocer más sobre este acestral arte, seguí leyendo..
Script-Fu (un dialecto de Scheme) es el lenguaje original (además de C) utilizado para escribir plug-ins para Gimp (The GNU Image Manipulation Program). Actualmente se pueden escribir plug-ins en otros lenguajes como Perl, Tcl y.. Python
¿qué hay que tener instalado?
<li>python (<code>apt-get install python</code> en Debian GNU/Linux)</li> <li>gimp (<code>apt-get install gimp</code>)</li> <li>pygimp (<code>apt-get install gimp-python</code>)</li>
Los dos primeros programas suelen estar instalados en la mayoría de las instalaciones de GNU/Linux, el último no. Una verificación rápida puede hacerse ejecutando gimp y buscando la opción Python-Fu en el menú Exts.
Script-Fu
En http://www.jamesh.id.au/software/pygimp/structure-of-plugin.html se puede ver la estructura de un Script-Fu.
Cuando gimp es ejecutado, busca los archivos ejecutables que se encuentran en $HOME/.gimp-x-y/plug-ins/
. En el caso de los scripts en python, la función register() es ejecutada y cuando se acceda al plug-in mediante el menú especificado se ejecutará su función principal. Antención a esto: los archivos deben ser tener encendido el bit de ejecución (chmod +x hello-world.py
).
Otro tip: si algo no funciona como se espera, una forma de enterarse que pasó es ejecutar gimp desde una terminal (gimp --verbose
) y leer en esta las distintas salidas que produce el programa (allí se van a escribir los errores que se produzcan en tiempo de ejecución).
Links útiles
- http://www.jamesh.id.au/software/pygimp/: documentación sobre gimp-python.
- Carol at Gimp.org: muchos scripts que pueden servir de ejemplo, a mi me sirvió leer algunos antes de lanzarme a escribir el mío.
[update: a pedido del público: hello-world.py]
Pueden bajar hello-world.py para ver un ejemplo sencillo. Debería generar una imagen como esta:salvo que cambien los parámetros ;-)
Comentarios