Capítulo 12. Programar en el GIMP

Tabla de contenidos

1. Complementos (plugins)
1.1. Introduction
1.2. Uso de los complementos
1.3. Instalación de nuevos complementos
1.4. Creación de complementos
2. Uso de guiones Script-Fu
2.1. ¿Qué es Script-Fu?
2.2. Instalación de guiones Script-Fu
2.3. Do's and Don'ts
2.4. Different Kinds Of Script-Fus
2.5. Standalone Scripts
2.6. Image-Dependent Scripts
3. Un tutorial de Script-Fu
3.1. Conociendo el Scheme
3.2. Variables y funciones
3.3. Listas, listas y más listas
3.4. Su primer código de Script-Fu
3.5. Dar algo de sustancia a nuestro script
3.6. Extender el script: Text Box
3.7. Your script and its working

1. Complementos (plugins)

1.1. Introduction

Una de las principales bondades del GIMP es la facilidad con que se puede extender su funcionalidad, por medio de complementos (también llamados plugins). Los complementos del GIMP son programas externos que corren bajo el control de la aplicación, e interactúan con ella. Los complementos pueden modificar las imágenes casi de la misma manera con que pueden hacerlo los usuarios. Si se necesita una nueva capacidad en el GIMP, puede ser mucho más fácil agregarla escribiendo un pequeño complemento, que modificando la gran masa de código complejo que hace a la propia aplicación. Muchos de los complementos más valorables están hechos sólo de unas cien o doscientas líneas de código fuente en C.

La distribución principal del GIMP incluye varias decenas de complementos, que se instalan automáticamente junto con la aplicación. La mayoría pueden ser accedidos por el menú Filtros. De hecho, cada entrada a ese menú se corresponde con un complemento. Otro tanto está ubicado en otros menús. En muchos casos puede hacer uso de alguno sin siquiera enterarse. Por ejemplo, la función Normalizar para la corrección automática del color es en realidad un complemento, aunque no haya nada en su funcionamiento que lo haga parecer tal.

In addition to the plugins included with GIMP , many more are available on the net. A large number can be found at the GIMP Plugin Registry [GIMP-REGISTRY], a web site whose purpose is to provide a central repository for plugins. Creators of plugins can upload them there; users in search of plugins for a specific purpose can search the site in a variety of ways.

Cualquier persona del mundo puede escribir un complemento para el GIMP y hacerlo disponible en la web, tanto en el registro anteriormente dicho, como en un sitio personal, y muchos complementos valiosos se obtienen de esta forma. Algunos se describen en este manual. Junto con esta libertad viene acaparado cierto riesgo, ya que el hecho de que cualquiera pueda hacerlo significa que no hay ningún control de calidad. Los complementos que se distribuyen con el GIMP han sido probados y refinados por los desarrolladores, pero muchos de los que se encuentran en la web han sido hackeados en unos minutos, y luego dejados a la deriva. Algunos creadores de complementos simplemente no se preocupan por su robustez, e incluso los que sí lo hacen no tienen la capacidad de probarlos en diversos sistemas y en diversas situaciones. Básicamente, cuando Ud. descarga un complemento, lo está obteniendo libremente, pero aveces puede tener que pagar por ello. Esto no es para decepcionarlo, sino para que conozca la realidad.

[Aviso] Aviso

Los complementos, al ser completos programas ejecutables, pueden hacer todas las cosas que los otros programas pueden hacer, incluyendo la instalación de puertas traseras en su sistema, entre otras formas de comprometer su seguridad. Por lo tanto no instale complementos, a menos que provengan de una fuente confiable.

Estas cuestiones se aplican tanto a los complementos del Plugin Registry como a cualquier otra fuente. El Plugin Registry se encuentra disponible para cualquier creador que quiera usarlo, sin excepsión. Obviamente, si los administradores son advertidos de que se ha registrado un complemento malicioso, lo pueden eliminar (esto aún no ha sucedido). Los complementos se proporcionan con la misma garantía que el resto del software libre, es decir, con ninguna.

[Atención] Atención

La capacidad de extender por complementos se ha introducido en el GIMP desde hace muchas versiones. Sin embargo, los complementos escritos para una versión determinada difícilmente funcionen en otras versiones. Necesitan ser portados, lo que aveces es fácil, y otras veces no. Muchos complementos se han transcrito de una versión a otra. Para tener en cuenta: antes de instalar un complemento, asegúrese que esté escrito para su versión del GIMP.

1.2. Uso de los complementos

En general Ud. hace uso de un complemento sin siquiera notarlo, como lo hace con las otras herramientas del GIMP. Pero hay algunos detalles concernientes a los complementos que quisiera conocer.

Primero, los complementos no son tan robustos como el cuerpo de la aplicación GIMP. Cuando el GIMP se rompe, se considera que ha sucedido algo muy serio, ya que le puede costar al usuario un buen dolor de cabeza. Cuando un componente se rompe, las consecuencias usualmente no son tan serias. En la mayoría de los casos Ud. puede continuar trabajando sin preocuparse de lo que ha sucedido.

[Nota] Nota

Los complementos son programas aislados, y se comunican con el cuerpo del GIMP de una manera especial: los desarrolladores del GIMP lo llaman hablar por medio de un cable (en inglés talking over a wire ). Cuando un complemento se rompe, la comunicación se corta, y Ud. obtiene un mensaje de error wire read error ( error de lectura del cable ).

[Sugerencia] Sugerencia

Cuando un complemento se rompe, se le proporciona un mensaje diciendo que se pudo haber dejado al GIMP en un estado corrupto, y que debería considerar guardar las imágenes y salir. Estrictamente hablando, esto es correcto, porque los complementos tienen la capacidad de modificar casi todo en el GIMP. Pero en la práctica, la experiencia ha demostrado que dicha corrupción ocurre muy raramente, y muchos usuarios continuan trabajando sin preocuparse. Nuestro consejo es que Ud. considere qué tan problemático sería si algo anduviera mal, y lo enfrente con lo incómodo que es salir y volver a iniciar.

Debido a la manera en que los complementos se comunican con el GIMP, ellos no tienen manera de conocer los cambios que Ud. ha hecho en una imagen antes de que sean iniciados. Si Ud. inicia un complemento, y luego modifica la imagen empleando otra herramienta, el complemento probablemente se romperá, y cuando no lo haga dará un resultado incorrecto. Debería evitar correr más de un complemento al mismo tiempo sobre una imagen, y evite también hacer modificaciones a la imagen hasta que el complemento termine de trabajar. Si Ud. ignora este consejo, no sólo se dañará la imagen, sino que además se dañará el sistema de deshacer, con lo que ni siquiera podrá recuperarse del accidente.

1.3. Instalación de nuevos complementos

Los complementos distribuidos con el GIMP no requieren una instalación especial. Son los que se descargan de la web los que requieren instalarse. Hay varios escenarios, dependiendo de su sistema operativo, y de cómo se encuentra estructurado el complemento mismo. En Linux usualmente es muy fácil instalar un nuevo complemento. En Windows, puede ser tanto fácil como difícil. Es por eso que resulta mejor considerar ambos sistemas por separado.

1.3.1. Linux / Unix-sytem like systems

La mayoría de los complementos caen en dos categorías: lo pequeños cuyo código fuente se distribuye en un único archivo .c, y los grandes cuyo código fuerte se distribuye como un directorio que contiene varios archivos, incluyendo un archivo Makefile.

Tomemos como ejemplo un pequeño complemento de un archivo, llamémosle borker.c. Instalarlo sólo toma correr el comando gimptool-2.0 --install borker.c. Este comando compila el complemento y lo instala en su directorio personal de complementos, por ejemplo ~/gimp-2.4/plugins. Esto lo deja disponible para la próxima vez que inice la aplicación. No necesita tener privilegios de root para realizar esta tarea. De hecho, no debería hacerlo.

Ahora bien, si ya ha instalado el complemento, ¿cómo lo activa? El complemento determina una entrada de menú para accederlo, así que para conocer su ubicación puede revisar la documentación del mismo. También puede lanzar el diálogo "Visor de complementos" desde Exts/Explorador de complementos. Busque el complemento por su nombre y luevo observe la solapa Vista de árbol. Si aún no lo encuentra, explore los menús o dele un vistazo al código fuente y busque la sección Register.

Para complementos más complejos, organizados en un directorio con múltiples archivos, puede ver que incluyen un archivo llamado INSTALL o un archivo README, con instrucciones. Si no es así, es mejor que no lo utilice, porque ha sido escrito con pocas intensiones de que sea utilizado por otros.

Algunos complementos (especialmente aquellos basados en la plantilla de complementos del GIMP, GIMP Plugin Template) están diseñados para ser instalados en el sistema, en vez de en su directorio personal. Para estos, necesita tener privilegios de root para realizar la última etapa de instalación (al ejecutar el comando make install).

Si instala un complemento en su directorio personal que tiene el mismo nombre que uno de los complementos instalados en el sistema, sólo uno puede ser cargado, y se tratará del que se encuentra en su directorio. Recibirá un mensaje comunicándole que ha sucedido esto. Lo mejor es evitar esta situación.

1.3.2. Windows

El entorno Windows es mucho más problemático que Linux para compilar software. Todas las distribuciones decentes de Linux traen todas las herramientas necesarias para la compilación, y todas trabajan de manera muy similar. Pero Windows no viene con estas herramientas. Es posible establecer un buen entorno de compilación de software en Windows, pero requiere una cantidad sustancial de dinero, o una cantidad sustancial de esfuerzo y conocimiento.

Lo que esto significa en relación a los complementos del GIMP es lo siguiente: Ud. posee un entorno en el cual puede construir software, o no lo posee. Si no lo posee, tenga la esperanza de encontrar una versión precompilada en algún sitio (o persuada a alguien para que lo compile por Ud.), en cuyo caso simplemente necesita colocarlo en su directorio personal para complementos. Si Ud. sí tiene dicho entorno (lo que además significa que puede compilar el GIMP), entonces seguramente tiene el conocimiento suficiente y puede seguir las instrucciones para Linux.

Si desea establecer un entorno de compilación, y se cree capaz del heroísmo que esto involucra, puede hallar una descripción bastante decente de cómo hacerlo en el wiki del GIMP, en HowToCompileGimp/MicrosoftWindows [GIMP-WIKI-MS]. Como se encuentra en un wiki, cualquiera lo puede editar, así que siéntase libre de mantenerlo actualizado agregando consejos basados en su propia experiencia.

1.3.3. Apple Mac OS X

How you install plugins on OS X mostly depends on how you installed GIMP itself. If you were one of the brave and installed GIMP through one of the package managers like fink [DARWINORTS] or darwinports, [FINK] the plugin installation works exactly the way it is described for the Linux platform already. The only difference is, that a couple of plugins might be even available in the repository of you package manager, so give it a try.

If you on the other hand are one of the Users that preferred to grab a prebuild GIMP package like GIMP.app, you most probably want to stick to that prebuild stuff. So you can try to get a prebuild version of the plugin of you dreams from the author of the plugin, but I'd not want to bet on this. Building your own binaries unfortunately involves installing GIMP through one of the package managers mentioned above.

1.4. Creación de complementos

Si desea aprender a escribir complementos, puede hallar mucha ayuda en el sitio web de los desarrolladores del GIMP [GIMP-DEV-PLUGIN]. El GIMP es un programa complejo, pero los desarrolladores han hecho un gran esfuerzo para que la curva de aprendizaje sea suave, especialmente para la codificación de complementos. Hay muy buenas instrucciones y ejemplos, y la biblioteca principal que emplean los complementos como interfaz con el GIMP (llamada libgimp) cuenta con una API muy bien documentada. Los buenos programadores, que aprenden modificando los complementos existentes, llegan a lograr cosas interesantes en unos pocos días de trabajo.