jueves, 14 de abril de 2011

Analisis: Crea e instala tus propios filtros para Inkscape dentro del menú filtros (I)

A raíz de los artículos de cursorlibre (este y este) en los que veíamos nuevos filtros para Inkscape, de Ivan_Louette, que periodicamente saca nuevos filtros en OpenClipart, y del tocho-post que escribí anteriormente, me surgió la duda de cómo de complicado era instalar un filtro en Inkscape. Las instrucciones del Irzun para algunos filtros consistían en copiar el .svg en la carpeta de filtros donde está instalado: en windows, ../Inkscape/share/filters y en linux, ..usr/share/inkscape/filters. En otros casos, Irzun decía de usarlos como librería, copiando y pegando efectos de un documento a otro. La solución, sorprendentemente, se encuentra en la famosa carpeta ../filters, en un archivo README:


   This directory is for the custom SVG filters.
   Inkscape loads filters from all SVG files here at runtime
   and makes them accessible via the Effects > Filters and its submenus.

   Each filter must have attributes:

   inkscape:label is the name in the menu
   inkscape:menu  is the submenu under Effects > Filters
   inkscape:menu-tooltip is the menu command's tooltip in the statusbar

   These are then put into filters.svg.h in order to make them translatable.
   They should appear as a normal translation to translaters through the
   gettext system.

Lo que traducido al roman paladíno, cual suele cada hombre fablar a su vecino, todo aquel filtro contenido en un documento que esté dentro de esa carpeta se carga en la lista de filtros al arrancar, y se vuelve accesible desde el menu de filtros y sus submenus. Tenga o no tenga objetos (dibujitos e imagenes) el documento, lo importante es que haya un filtro ahí del que tomar los datos. Ahora bien, hay que respetar unos parametros. Los filtros deben tener ciertos atributos:

*** inkscape:label es el nombre del filtro que aparecerá en el menú

*** inkscape:menu  es el submenu en el que vamos a encontrar nuestro filtro, dentro del menú Filtros (en ingles dirá lo que quiera, a mi me aparece así)

*** inkscape:menu-tooltip es el texto de ayuda que aparecerá en la barra de estado, en la parte de abajo (exacto, ese sitio donde nunca se te ocurre mirar y que muestra información de lo que ocurre)


¿Donde encontramos esos parámetros en nuestros filtros? Vamos a usar como referencia el primer filtro externo que conocí, el Litho, básicamente porque es un archivo cortito y solo tienes que ver un filtro (por supuesto puedes y deberías comprobarlo con todos y cada uno de los .svg que encuentres, es una orden, recluta!). Descargalo de Openclipart desde aquí, (botón derecho y guardar destino como, o en su defecto si lo abres en la ventana del navegador, archivo>>guardar como), y mueve el archivo a esa carpeta que tenemos tu y yo a medias de filters.

Nadie dijo que esto fuera facil, así que ahora abre el archivo .svg con un editor de textos simple (olvidate de libreoffice, necesitas algo como el wordpad). Es posible que no lo sepas, no es necesario que lo sepas de hecho, pero los archivos .svg utilizan el estandar XML, así que puedes abrirlos con cualquier editor, y posiblemente, si están bien organizados, incluso entenderlos rápidamente de un vistazo.

Cada filtro, cada degradado, cada objeto, linea y paranoia que puedas imaginarte, estan estructurados en bloques a lo largo del documento. Así que si utilizas el buscador de palabras para encontrar la palabra FILTER,  vas a encontrarte con esta sección:

<filter id="filter107" inkscape:label="Litho" inkscape:menu="CompoTrans" color-interpolation-filters="sRGB" height="1" width="1" y="0" x="0">
<feComposite operator="arithmetic" k2="1"/>
<feColorMatrix type="saturate"/>
<feGaussianBlur stdDeviation="1" result="result1"/>
<feComponentTransfer in="result1" result="component1">
<feFuncR type="discrete" tableValues="0 1 1"/>
<feFuncG type="discrete" tableValues="0 1 1"/>
<feFuncB type="discrete" tableValues="0 1 1"/>
</feComponentTransfer>
</filter>
Identificación del filtro, y todas las funciones/efectos que lo componen. De aquí nos interesa la cabecera:

<filter id="filter107" inkscape:label="Litho" inkscape:menu="CompoTrans" color-interpolation-filters="sRGB" height="1" width="1" y="0" x="0">

Como puedes ver, el filtro dispone de su etiqueta inkscape:label, el nombre del filtro, y el lugar donde será incluido en los submenus, la etiqueta inkscape:menu. No dispone de un tooltip, así que un primer ejercicio práctico podría ser añadir aquí algo como "Me encanta la cerveza bien fria":

<filter id="filter107" inkscape:label="Litho" inkscape:menu="CompoTrans" inkscape:menu-tooltip="Me encanta la cerveza bien fria" color-interpolation-filters="sRGB" height="1" width="1" y="0" x="0">

Si quieres evitarte la prueba, no uses tildes (en fría, ya sabes...), o el archivo no pasará la prueba del algodón, y no aparecerá en el menú de filtros. Guarda los cambios, abre Inkscape, y al seleccionar Litho en el menú de filtros verás algo como esto:


Ya está, hemos hecho el tonto un rato ^^ Ahora en serio, podrías agregar el tooltip con la descripción de la herramienta que hay en la pagina: "Simple filter to convert photographs to a pure black and white litho film effect". O lo puedes traducir a la siempre atractiva lengua de Cervantes...

¿Qué es lo que ocurre si falla alguno de estos parametros?  Gracias a Litho, sabemos que un filtro puede funcionar sin un tooltip. En estos casos, el tooltip por defecto es el nombre del filtro.¿Qué ocurre entonces si no tenemos el nombre (label) del filtro? entonces el filtro toma la ID como referencia (en este caso, filter107).

Lo que no puedes pretender en esta vida es estar es sin un parametro de menú. No puedes salir de casa sin él. Bill Gates vendrá por la noche y te atacará con un calcetín sudado si no tienes un parámetro de inkscape:menu... No, realmente, el filtro simplemente no aparece en la lista. Pero reconocelo, por un momento has tenido miedo.


Espero que ahora tengas algo más de idea acerca de como instalar nuevos filtros en Inkscape. Por ahora hemos aprendido que podemos guardar un .svg de inkscape que contenga un filtro en la carpeta de filtros, ya sea aplicado a un objeto, como ejemplo de lo que puede hacer (los filtros que hemos estado viendo de Irzun), o un filtro en un documento sin objetos (Litho y compañía, de Ivan Louette), por ahorrar tamaño de archivo. También hemos aprendido a abrir archivos .svg con un editor de textos, y a modificar los parámetros principales del filtro.

Digo espero, porque esta era la parte fácil. El próximo tocho de post, Analisis a fondo sobre la creación de filtros.


 

No hay comentarios:

Publicar un comentario