Iniciación a la creación de script-fu (o macros) en Gimp


No os asustéis que la intención de este artículo no es otra que ofreceros una toma de contacto con una de las funcionalidades de este fantástico programa de diseño gráfico más ocultas y sin embargo más útiles.

¿Recordáis la cantidad de pasos que había que dar para algunos de los efectos que hemos explicado en este blog?

Para refrescar la memoria no tenéis más que mirar alguno de los siguientes posts

En todos ellos subyacen los mismo principios

  • No son excesivamente complejos
  • Requieren repetir los mismos pasos n-cientas veces

Como no es plan de malgastar nuestro preciado, y escaso, tiempo lo mejor que podemos hacer es automatizar aquellos procesos que utilicemos frecuentemente (si lo hacemos de higos a brevas realmente no merece la pena el esfuerzo)

Y aquí es donde entra Script-Fu.

Objetivo

Con este artículo se pretende:

  1. Mostrar la estructura básica de un Script-Fu que sirva como base para el desarrollo de otros scripts propios
  2. Automatizar el proceso para destacar zonas de una imagen utilizando la técnica del desenfoque Blur tal y como vimos en su día.

Materiales necesarios

Poca cosa:

  1. Un editor de textos (notepad o similar)
  2. Gimp instalado y funcional 😉

Solución escogida

Me voy a decantar por la variedad de script Scheme para la programación de los script-fu que aunque en un principio pueda parecer compleja por la abundancia de paréntesis termina siendo de lo más intuitiva para las personas no acostumbradas a la programación.

Resultado final

Al final nuestro script quedará de la siguiente forma

Como no se ve realmente bien, para todos aquellos impacientes les paso directamente el código para que lo descarguen e instalen en sus equipos.

¿Complicado?

No te preocupes en realidad son 3 líneas mal contadas la que hacen falta para conseguir el efecto; el resto podrás copiarlo y pegarlo en los nuevos scripts que crees con pequeñas modificaciones.

Destripando el funcionamiento del script-fu

Definición del script que vamos a crear

Se corresponde con las primeras líneas de código y que pueden observarse en la siguiente figura

NOTA: Los punto y coma (como ; autor) son comentarios del código fuente y como tales son ignorados por Gimp. La única finalidad es que nos sirvan de guía y explicación a nosotros mismos o, lo que es lo mismo, para saber porqué pusimos cada cosa y para qué sirve 😉

Salvo las líneas 2, 10 y 11 puedes copiar el contenido tal cual en tu próximo script-fu cambiando el contenido que aparece entre las comillas (no querrás que me atribuyan a mi el trabajo ¿verdad?)

Si quieres más información sobre el significado de cada uno de ellos te recomiendo leer el manual en castellano.

La línea 2 es el nombre que daremos a nuestra función (siento haber sido tan poco original) y debes actualizarla de modo que su contenido coincida con el de las líneas 14 y 16 respectivamente.

La línea 10 permite indicar restricciones sobre el tipo de imagen a la que puede aplicarse el script-fu.

En nuestro caso lo hemos dejado vacío indicando con ellos que se admite cualquier tipo de imagen.

Los valores posibles son los siguientes

  • RGB
  • RGBA
  • GRAY
  • GRAYA
  • INDEXED
  • INDEXEDA

Personalización del script

A partir de la línea 11 (ella incluida) y antes de la 12 podemos meter parámetros para que el usuario decida cómo quiere que funcione el script que hemos creado.

Los valores posibles son los que aparecen en la siguiente página del manual de Gimp.

Imagina por un momento que queremos añadir un texto de determinado color a la imagen que tenemos abierta y queremos que el usuario elija

  1. El color del texto
  2. El texto a incluir en la imagen
  3. La posibilidad de aplicar (o no) el efecto Blur a la imagen sobre la que pondremos nuestro texto

La parametrización del script, siguiendo las instrucciones del manual sería la siguiente

y al ejecutarlo el programa mostraría el siguiente formulario

Realmente interesante cómo muestra los parámetros del script en un formulario en función del tipo y el valor que le indiquemos, ¿no os parece?

Observar antes de seguir adelante que para cada uno de los parámetros nuevos (SF-COLOR, SF-STRING y SF-TOGGLE) he añadido en la definición de la función (línea 19) una entrada nueva para cada uno de ellos (inColor, inTexto e inBlur).

Se pueden llamar cómo te resulte más cómodo o intuitivo pero debe existir uno por cada parámetro que añadas al script (ni más ni menos).

Registrar el plugin

Ya hemos definido nuestro plugin:

  • Nombre, autor, fecha de creación, …
  • Parámetros a indicar por el usuario

Lo siguiente que nos queda es decirle a Gimp la entrada de menú en la que debe mostrarlo y la función que debe ejecutarse cuando el usuario lo seleccione.

Para ello tenemos la línea 14 de nuestro código original

Con ella le estamos indicando que la función a ejecutar es «script-fu-jasv» (recuerda que el nombre debe coincidir con el de las líneas 2 y 16) y que debe colgarla en la ventana de cada imagen en la entrada de menú Filters/Jasv

Si no existe la entrada en el menú de Gimp (como es el caso de Jasv) el se encargará de crearla para poder registrarlo.

Si quieres que aparezca en la ventana de aplicación en lugar de en la de la imagen, debes cambiar

<Image>/Filters/Jasv

por

<Toolbox>/Xtns/Jasv

y el resultado será el siguiente

Normalmente esta segunda opción suele utilizarse cuando los scripts, en lugar de modificar imágenes ya cargadas deben generarlas desde cero (caso de las entradas Botones y Logotipos que pueden verse en la captura anterior)

Desarrollo del script

Una vez cubiertos todos los pasos previos como requisito imprescindible para poder identificar y personalizar el script-fu viene la tarea más importante: indicar qué hace nuestro script.

O lo que es lo mismo, indicar los distintos pasos que ejecutará.

Básicamente es tan «sencillo» como coger las instrucciones que os he dado para hacerlo manualmente e ir traduciéndolo a comandos de Gimp.

En el caso que nos ocupa (difuminado de las zonas no seleccionadas mediante Blur), el código sería

Si recuerdas el artículo original los pasos que debías realizar manualmente eran

  1. Invertir la selección (lo hacemos en la línea 20)
  2. Aplicábamos el filtro de desenfoque (contenido línea 21)

Lo único extraño es el contenido de la línea 18 cuya finalidad es proporcionarnos una referencia a la capa que estamos utilizando actualmente en la imagen con objeto de poder operar sobre ella en las dos instrucciones siguientes.

Documentación funciones script-fu

Para saber qué funciones podemos utilizar nada mejor que consultar la propia documentación que trae la aplicación.

Para ello podéis acceder a cualquiera de las siguientes entradas de Gimp

La primera de ellas (Explorador de Complementos) sirve para conocer los parámetros de los distintos complementos instalados en nuestro Gimp (por ejemplo el filtro Blur que hemos usado)

mientras que la segunda (Visor de procedimientos) nos permite conocer qué información debemos pasar a la hora de realizar las operaciones básicas de Gimp (como invertir la selección del ejemplo)

Continuar estudiando scripts

La mejor forma de aprender a programar es plantearse una meta u objetivo y probar hasta terminar exhausto o conseguirlo.

Os propongo (como ejercicio para casa) que tratéis de hacer lo mismo con el otro efecto (sombreado de zonas no importantes de una imagen) y que vayáis posteando los resultados que obtengáis como comentarios de este artículo.

Os puedo asegurar que aparecerán distintas soluciones (aunque resuelvan el mismo problema) y todos podemos aprender de ellas; ¿te atreves a ser el primero en colgar la solución? Yo por mi parte me ofrezco para revisarlas, valorarlas y ofrecer posibles mejoras.

Conclusión

En este largo artículo hemos visto los principios básicos necesarios para la creación de scripts en Gimp; hemos tocado superficialmente su funcionamiento y sólo hemos ahondado en aquello que he considerado necesario para el ejemplo que estábamos tratando de desarrollar.

Si aun os quedan ganas de más 🙂 no tenéis más que decirlo y me invito a otros tutoriales donde aparezcan algunas operaciones más complejas que pueden realizarse con ellos.e con ellos.

8 comentarios en “Iniciación a la creación de script-fu (o macros) en Gimp

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.