Capítol 13. Programació de scripts

Sumari

1. Connectors
1.1. Introducció
1.2. Com s'usen els connectors
1.3. Instal·lació de nous connectors
1.4. Escriure connectors
2. Ús de scripts Script-Fu
2.1. Script-Fu?
2.2. Instal·lació de Script-Fus
2.3. Què fer i què no fer
2.4. Diferents tipus de Script-Fus
3. Programa d'aprenentatge de l'Script-Fu
3.1. Coneixent l'Scheme
3.2. Variables i funcions
3.3. Llistes, llistes i més llistes
3.4. El vostre primer codi de Script-Fu
3.5. Dona una mica de substància al nostre script
3.6. Estendre l'script «Text Box»
3.7. El vostre script i la vostra feina

1. Connectors

1.1. Introducció

Una de les principals bondats del GIMP és la facilitat amb què se'n pot estendre la funcionalitat per mitjà de connectors. Els connectors del GIMP són programes externs que s'executen sota el control de l'aplicació del GIMP, i hi interactuen. Els connectors poden modificar les imatges gairebé de la mateixa manera en què poden fer-ho els usuaris. El seu avantatge és que és molt més fàcil afegir una capacitat al GIMP escrivint un petit connector que modificar la gran massa de codi complex que forma el nucli del GIMP. Molts dels connectors més valorats estan fets en només 100 o 200 línies de codi font en C.

La distribució principal del GIMP inclou diverses desenes de connectors que s'instal·len automàticament junt amb el GIMP. A la majoria s'hi pot accedir mitjançant el menú Filtres (de fet, cada entrada d'aquest menú es correspon amb un connector), però n'hi ha uns quants situats en altres menús. En molts casos podeu usar-ne algun sense ni tan sols saber-ho: per exemple, la funció «Normalitza» per a la correcció automàtica del color és en realitat un connector, encara que no hi hagi res en el seu funcionament que ho indiqui. Fins i tot la importació i exportació d'imatges es fa mitjançant connectors.

Tothom pot escriure un connector GIMP i fer-lo disponible en línia. Hi ha molts connectors útils que es poden aconseguir d'aquesta manera. Alguns d'ells es descriuen en altres llocs del Manual de l'usuari.

Aquesta disponibilitat gratuïta comporta un cert grau de risc. El fet que qualsevol pugui llançar connectors significa que no hi ha un control de qualitat efectiu. Tots els connectors distribuïts amb el GIMP han estat provats i ajustats pels desenvolupadors. Complements addicionals disponibles en línia poden haver estat piratejats en poques hores i després abandonats. Alguns creadors de connectors no es preocupen per la robustesa; i fins i tot aquells que ho fan, la seva capacitat de provar varietats de sistemes i situacions sovint és força limitada. Bàsicament, quan descarregueu un connector, rebeu alguna cosa de manera gratuïta i a vegades obteniu exactament el mateix amb el que es paga. No és per desanimar-vos, és només perquè entengueu que no tots els connectors disponibles en línia oferiran el que espereu d'ells.

[Avís] Avís

Els connectors, com que són programes executables complets, poden fer totes les coses que qualsevol altre programa pot fer. Això inclou la instal·lació de portes del darrere (back-doors) en el vostre sistema, o posar en risc la vostra seguretat. Per tant, no instal·leu connectors llevat que provinguin de fonts fiables.

[Nota] Nota

Els connectors escrits per a una determinada versió del GIMP poden no funcionar sempre bé en altres versions. Tot i que, en general, l'equip del GIMP intenta minimitzar els canvis que afecten els connectors. Normalment, l'única vegada que podeu esperar problemes greus amb els connectors és quan canvia la versió principal del GIMP. Quan un connector fet per a una versió anterior ja no funciona correctament, ha de ser relegat. De vegades això és fàcil, de vegades no. Conclusió: abans d'intentar instal·lar un connector, assegureu-vos que és compatible amb la vostra versió del GIMP.

1.2. Com s'usen els connectors

En general es fa ús d'un connector sense ni tan sols notar-ho, com amb altres eines del GIMP. Però hi ha alguns detalls sobre els connectors que és útil conèixer.

Primer, els connectors no són tan robusts com el nucli de l'aplicació GIMP. Quan el GIMP falla, es considera que ha passat alguna cosa molt seriosa, ja que pot suposar a l'usuari molts problemes i algun maldecap. Quan un connector té una fallada, les conseqüències generalment no són tan serioses. En la majoria dels casos podeu continuar treballant sense preocupar-vos pel que ha passat.

[Nota] Nota

Els connectors són programes aïllats, i es comuniquen amb el nucli del GIMP d'una manera especial: els desenvolupadors del GIMP en diuen «parlar per mitjà d'un cable». Quan un connector falla, la comunicació es talla, i veureu un missatge d'«error de lectura del cable».

[Suggeriment] Suggeriment

Quan un connector falla, el GIMP us proporciona un missatge dient que un connector pot haver deixat el GIMP en un estat corrupte, i que hauríeu de considerar desar les vostres imatges i sortir. Estrictament parlant, això és correcte, perquè els connectors tenen la capacitat de modificar-ho gairebé tot en el GIMP, però en la pràctica, l'experiència ha demostrat que aquesta corrupció és de fet molt rar, i molts usuaris continuen treballant sense preocupar-se'n. El consell és que considereu els problemes que es produirien si res anés malament i que ho compareu amb la incomoditat de sortir i tornar a iniciar.

A causa de la manera en què els connectors es comuniquen amb el GIMP, aquests no tenen cap mecanisme per a conèixer els canvis que heu fet en una imatge abans que siguin iniciats. Si inicieu un connector, i després modifiqueu la imatge emprant una altra eina, el connector probablement fallarà, i si no ho fa, donarà un resultat incorrecte. Hauríeu d'evitar executar més d'un connector al mateix temps sobre una imatge, i evitar també fer modificacions a la imatge fins que el connector acabi de treballar. Si no feu cas d'aquest consell, no només es farà malbé la imatge, sinó que a més es farà malbé el sistema de desfer, i ni tan sols podreu recuperar-vos de l'accident.

1.3. Instal·lació de nous connectors

Els connectors que es distribueixen amb el GIMP no requereixen instal·lació, però sí els que us descarregueu vosaltres. Normalment, la ubicació per defecte està en una carpeta /plug-ins del directori d'usuaris del GIMP, en que el nom del connector i el de la carpeta han de ser el mateix. Per torbar la ubicació predeterminada de la carpeta dels connectors del GIMP, heu d'anar a Preferències i fer clic a la carpeta Carpetes (abaix de tot). També hi podeu afegir noves ubicacions on el GIMP hi pot cercar connectors. Hi ha diversos escenaris, depenent del sistema operatiu que utilitzeu i de com estigui estructurat el connector.

1.3.1. Sistemes similars a Linux / Unix

La majoria dels connectors encaixen en dues categories: els petits, amb un codi font que es distribueix en un únic fitxer «.c», i els grans, amb un codi font que es distribueix com un directori que conté diversos fitxers, incloent-hi un fitxer Makefile.

Per a un connector simple d'un fitxer, anomenat borker.c, instal·lar-lo és només qüestió d'executar l'ordre gimptool-2.0 --install borker.c. Aquesta ordre compila el connector i l'instal·la en el vostre directori personal de connectors, per exemple ~/gimp-2.10/plug-ins tret que l'hàgiu canviat. Estarà disponible la pròxima vegada que inicieu el GIMP. No cal ser administrador per a dur a terme aquesta tasca; de fet, no hauríeu de ser-ho. Si el connector falla en compilar, bé, sigueu creatius.

1.3.2. Finestres

La majoria dels connectors del GIMP estan disponibles al Windows i també l'instal·lador, o bé es poden descarregar en un format binari pre-compilat preparat per copiar-se a una carpeta que escolliu reconeguda pel GIMP .

Si hi ha un instal·lador disponible, hauria de fer-vos tota la feina de seleccionar una carpeta adequada i copiant tots els fitxers rellevants. Si no, potser haureu de comprovar a les preferències de la carpeta del GIMP on s'han de copiar els connectors. Recordeu que cada connector ha d'estar a la seva pròpia carpeta amb el mateix nom del connector.

1.3.3. Apple Mac OS X

La majoria de les vegades, la instal·lació de connectors sobre OS X depèn de com s'hagi instal·lat el GIMP. Si heu instal·lat el GIMP amb un dels gestors de paquets com «fink» [FINK] o «darwinports»,[DARWINORTS] la instal·lació del connector funciona de la mateixa manera que la descrita per a la plataforma Linux. L'única diferència és que els connectors poden estar disponibles en el dipòsit del gestor de paquets; proveu-ho.

Si us estimeu més fer servir paquets preconstruïts del GIMP com ara el «GIMP.app», segurament també voldreu un connector preconstruïts. Podeu intentar aconseguir la versió preconstruïda directament de l'autor del connector. Dissortadament, crear els vostres propis binaris implica instal·lar el GIMP.

1.3.4. Executant el connector instal·lat

Una vegada instal·lat el connector, com l'activeu? El camí del menú està determinat pel propi connector, així que per contestar necessiteu revisar la documentació (si és que en té), exploreu els menús o utilitzeu la funció de la cerca d'ordres del GIMP prement / i després introduiu el nom del connector. Si sabeu llegir el codi font també podreu veure en quin menú es registra.

Per a connectors més complexos organitzats com un directori amb diversos fitxers, normalment hi ha un fitxer dins anomenat INSTALL o README, amb instruccions. Si no és així, millor llenceu el connector a la paperera i dediqueu el temps a una altra cosa: qualsevol codi escrit amb tan poca preocupació per a l'usuari és probable que sigui frustrant de mil maneres diferents.

Si instal·leu un connector al vostre directori de connectors personal que té el mateix nom que un del directori de connectors del sistema, només se'n pot carregar un, i serà el del vostre directori d'inici. Rebràs missatges que t'indiquin això cada vegada que iniciïs el GIMP. El millor és evitar aquesta situació.

1.4. Escriure connectors

Si voleu aprendre a escriure connectors, podeu trobar molta ajuda en el lloc web dels desenvolupadors del GIMP [GIMP-DEV-PLUGIN]. El GIMP és un programa complex, però els desenvolupadors han fet un gran esforç perquè la corba d'aprenentatge sigui suau, especialment per a la codificació de connectors. Hi ha molt bones instruccions i exemples, i la biblioteca principal que empren els connectors com a interfície amb el GIMP (anomenada «libgimp») disposa d'una API molt ben documentada. Els bons programadors, que aprenen modificant els connectors existents, arriben a aconseguir coses interessants en pocs dies de feina.