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:
- Mostrar la estructura básica de un Script-Fu que sirva como base para el desarrollo de otros scripts propios
- 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:
- Un editor de textos (notepad o similar)
- 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
- El color del texto
- El texto a incluir en la imagen
- 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
- Invertir la selección (lo hacemos en la línea 20)
- 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.
Muy interesante, lo voy a poner en práctica. Algo que hago seguido es ponerle una marca de agua a las fotos que subo a mi blog de fotografía. Así que me puede ahorrar trabajo.
Me gustaMe gusta
Y mucho amigo Halle… aunque parezca una tontería lo que tardas en hacerlo, si lo automatizas te estás ahorrando una barbaridad a medio y largo plazo
Me gustaMe gusta
Quizá está explicado, pero se me mezcló todo 😛 Dónde guardo el archivo para que me lo reconozca el GIMP?
Me gustaMe gusta
Tienes toda la razón del mundo Halle: con tanta explicación se me olvidó incluir ese «detallito» :O
En el siguiente post, en el apdo. Instalar el plugin, lo explico… perdonas las molestias, ¿cómo te está yendo?
Un saludo
Me gustaMe gusta
Hola! Teneis idea de como hacer una marca de agua, a partir de una imagen, pero que se repita por toda la pagina como si fuera un mosaico? muchas gracias
Me gustaMe gusta
No suelo usar «watermarks» pero podrías modificar alguno de los plugins existentes para que vaya cambiándo el offset (x e y)
Otra posibilidad sería utilizar el mismo enfoque pero con imagemagick.
Ya nos contarás cómo te ha ido… mucha suerte
Me gustaMe gusta