Capitolo 12. Programmare GIMP

Indice

1. Plugin
1.1. Introduzione
1.2. Uso dei plugin
1.3. Installazione di nuovi Plugin
1.4. Scrittura dei plugin
2. Uso degli script Script-Fu
2.1. Script-Fu?
2.2. Installazione degli Script-Fu
2.3. Cose che si possono e che non si possono fare
2.4. Tipi differenti di Script-Fu
2.5. Script autonomi
2.6. Script immagine dipendenti
3. Una guida sugli Script-Fu
3.1. Introduzione a Scheme
3.2. Variabili e funzioni
3.3. Liste, liste e ancora liste
3.4. Il primo script Script-Fu
3.5. Dare un corpo allo script
3.6. Estendere lo script Text Box
3.7. Lo script e il suo funzionamento

1. Plugin

1.1. Introduzione

Uno degli aspetti più interessanti di GIMP è quanto sia semplice estenderne le funzionalità usando i plugin. I plugin di GIMP sono programmi esterni che vengono eseguiti sotto il controllo dell'applicazione principale con la quale interagiscono in maniera molto stretta. I plugin possono elaborare le immagini quasi quanto può farlo l'utente in maniera interattiva. Il vantaggio di questi ultimi è che è molto più semplice aggiungere funzionalità a GIMP scrivendo un piccolo plugin piuttosto che modificando direttamente quell'enorme massa di codice che è il nucleo di GIMP. Molti plugin molto validi constano di appena 100-200 circa linee di codice C.

Diverse dozzine di plugin sono inclusi nella distribuzione principale di GIMP e quindi vengono installati automaticamente con GIMP. Molti sono accessibili attraverso il menu Filtri (in effetti, qualsiasi cosa in quel menu è un plugin), mentre gli altri sono distribuiti nei restanti menu. Spesso vengono usati senza neanche la consapevolezza di usare un plugin: per esempio la funzione "Normalizza" per la correzzione automatica del colore è un plugin malgrado non ci sia niente nel suo funzionamento che ne indichi la natura.

In aggiunta ai plugin inclusi in GIMP, molti altri sono disponibili nella Rete. Molti sono pubblicati sul Registro dei Plugin di GIMP[GIMP-REGISTRY], un sito il cui unico scopo è di fornire un archivio centrale per i plugin. Gli autori di plugin li depositano lì in maniera tale che gli utenti alla ricerca di un plugin per uno scopo particolare possano cercarlo su questo sito con diverse modalità di ricerca.

Tutti al mondo hanno la possibilità di scrivere un plugin di GIMP e pubblicarlo sul web sia per mezzo del Registro o tramite un sito personale e spesso molti validi plugin sono proprio disponibili in questo modo - alcuni di essi sono pure descritti nel manuale utente di GIMP. Tutta questa libertà naturalmente ha anche degli aspetti negativi: il fatto che chiunque possa fare ciò implica che esiste una certa dose di rischio dovuta al fatto che non c'è un efficace controllo di qualità. Invece i plugin distribuiti con GIMP sono tutti testati e curati dagli sviluppatori diversamente dai molti che si possono scaricare che spesso sono assemblati in maniera approssimativa in poche ore e distribuiti al mondo intero. Ad alcuni autori di plugin semplicemente non interessa la robustezza e anche se ad alcuni interessa, la rispettiva capacità fare seriamente delle prove su un certo numero di piattaforme è spesso limitata. Praticamente quando si scarica un plugin, lo si ottiene gratuitamente e spesso questo è proprio il valore che merita. Non diciamo tutto ciò con l'intento di scoraggiare ma semplicemente per onor del vero.

[Avvertimento] Avvertimento

I plugin, essendo dei programmi eseguibili completi, possono fare ogni genere di cose che altri programmi possono fare, incluso installare delle back-door o compromettere in ogni modo la sua sicurezza. Non installare un plugin se non si è sicuri della sua provenienza da una fonte di fiducia.

Queste considerazioni sono applicabili sia al Registro dei plugin che ad ogni altra sorte di sorgente di plugin. Il Registro è disponibile ad ogni autore di plugin che lo voglia usare: non c'è un controllo sistematico. Ovviamente se il manutentore viene a conoscenza di qualche cosa di dannoso, lo rimuoverebbe (ma sembra che fino ad ora ciò sia successo). Naturalmente GIMP ed i suoi plugin hanno le garanzie di ogni altro software libero: cioè, nessuna.

[Attenzione] Attenzione

I plugin sono stati una caratteristica di GIMP da molte versioni e difficilmente possono essere usati con successo per una versione diversa da quella per cui sono stati scritti. È necessario portarli alla versione desiderata e quest'operazione alle volte può molto difficoltosa. Molti plugin sono già disponibili in diverse versioni. Morale: prima di provare ad installare un plugin assicurarsi che sia stato scritto per la versione di GIMP desiderata.

1.2. Uso dei plugin

Per la maggior parte è possibile usare un plugin come se fosse un qualsiasi altro strumento di GIMP senza la consapevolezza del fatto che sia effettivamente un plugin. Ci sono però dettagli riguardo i plugin che è utile sapere.

Uno di questi è che i plugin sono generalmente affidabili come il nucleo di GIMP. Se GIMP dovesse andare in crash, sarebbe considerato un fatto molto grave: una situazione simile potrebbe costare ad un utente molte preoccupazioni e difficoltà. Se un plugin dovesse andare in crash le conseguenze non sono normalmente così preoccupanti dato che spesso è possibile continuare il proprio lavoro come nulla fosse accaduto.

[Nota] Nota

Dato che i plugin sono programmi separati, essi comunicano con il nucleo di GIMP in maniera particolare: gli sviluppatori di GIMP lo chiamano «parlare sui fili» Quando un plugin va in crash, la comunicazione viene interrotta ed il fatto viene segnalato da un messaggio di errore circa un «errore di lettura filo ('wire read error')»

[Suggerimento] Suggerimento

Quando un plugin va in crash, GIMP segnala la cosa con un messaggio di avvertimento del fatto che il plugin potrebbe aver lasciato il programma in uno stato imprevisto e consiglia di salvare le immagini su cui si stava lavorando ed uscire da GIMP immediatamente. Strettamente parlando tutto ciò è corretto dato che i plugin hanno la capacità di alterare quasi tutto il funzionamento di GIMP ma, nella pratica, è piuttosto raro avere dei problemi e spesso è possibile continuare a lavorare senza preoccupazione. Il nostro consiglio è di valutare attentamente la possibilità di un eventuale problema considerando il caso peggiore (perdita di dati) e confrontare con i vantaggi del poter continuare a lavorare.

Dato la maniera con cui i plugin comunicano con GIMP, essi non possiedono nessun meccanismo per essere informati sui cambiamenti che si fa su un'immagine dopo che il plugin è stato avviato. Se si avvia un plugin e dopo si modifica l'immagine usando un qualche altro strumento, spesso il plugin va in crash e quando non succede spesso viene prodotto un risultato incorretto. Evitare di eseguire più di un plugin alla volta su di un'immagine e di fare qualsiasi cosa all'immagine prima che il plugin abbia finito di lavorarci sopra. Se si ignora quest'avvertimento, non solo probabilmente si rovinerà l'immagine, ma non si sarà più in grado di recuperare nemmeno il sistema degli annullamenti, in maniera tale da non essere più in grado di recuperare nulla del proprio lavoro.

1.3. Installazione di nuovi Plugin

I plugin distribuiti con GIMP non abbisognano di nessuna installazione speciale diversamente da quelli scaricati da se dalla Rete. Ci sono diversi scenari a seconda del sistema operativo che si sta utilizzando e a seconda di come è strutturato il plugin. In Linux è abbastanza semplice installare un nuovo plugin; in Windows o è molto semplice oppure molto difficile. Ad ogni modo è meglio considerare separatamente i due sistemi.

1.3.1. Sistemi di tipo Linux / Unix

Molti plugin ricadono in due categorie: i piccoli il cui sorgente viene distribuito come un singolo file sorgente .c e quelli più grandi il cui codice sorgente viene distribuito nella forma di una cartella contenente più file ed un file Makefile.

Per un semplice plugin a singolo file, chiamiamolo borker.c, per installaro è solo questione di eseguire il comando gimptool-2.0 --install borker.c. Questo comando compila il plugin e lo installa nella cartella personale dei plugin in ~/gimp-2.4/plugins a meno che non sia stata cambiata. Quest'operazione farà in modo che esso venga automaticamente caricato al prossimo avvio di GIMP. Non serve essere amministratori, cioè root, per fare queste cose. Se il plugin non si compila, beh, siate creativi!

Una volta installato il plugin, come attivarlo? Il percorso del menu è determinato dal plugin, perciò per rispondere a questa domanda è necessatio consultare la documentazione allegata al plugin (se c'è) o lanciare la finestra di descrizione del plugin (dal menu Xtns/Navigatore dei plugin) cercare il plugin per il suo nome e osservare la linguetta della Vista ad albero. Se ancora non lo si trova, esplorare i menu o guardare nel codice sorgente nella sezione Registro.

Per plugin più complessi, organizzati come una cartella con più fila, dovrebbe esserci un file all'interno di essa chiamato INSTALL o README, con le istruzioni. Se non c'è, il consiglio migliore che possiamo darvi è di gettarlo nel cestino e investire il proprio tempo in qualcosa di più produttivo: tutto il codice con così poca considerazione per l'utente è probabile che sia frustrante in molti altri aspetti.

Alcuni plugin (in special modo quelli basati sul modello dei plugin di GIMP) sono progettati per essere installati nella cartella di sistema principale di GIMP piuttosto che nella propria cartella home. Per questi è necessario assumere l'identità dell'amministratore (root) per eseguire lo stadio finale dell'installazione (make install).

Se si installa un plugin nella propria cartella personale che ha lo stesso nome di una cartella plugin di sistema, solo una viene presa in considerazione e caricata; quella nella cartella personale. Si riceverà un messaggio di avvertimento a questo proposito ad ogni avvio di GIMP. Di solito è meglio evitare questa eventualità.

1.3.2. Windows

Windows è un ambiente molto più problematico di Linux per compilare il software. Ogni distribuzione Linux che si rispetti è corredata da tutti gli strumenti necessari per compilare ed essi sono tutti dal funzionamento molte simile; invece Windows è sprovvisto di tali strumenti. È comunque possibile impostare tale ambiente anche in Windows ma richiede un notevole quantitativo di soldi o di tempo ed esperienza.

Il significato di ciò in relazione a GIMP è che o si ha un ambiente nel quale è possibile compilare del software oppure no. Se è impossibile, la nostra speranza è di trovare da qualche parte una versione precompilata (o convincere qualcuno a compilarla per noi); in tal caso basta sistemare il plugin nella nostra cartella personale dei plugin. Se si ha un ambiente predisposto alla compilazione di software (che significa nel nostro caso un ambiente nel quale è possibile compilare GIMP) è possibile che già si sia abbastanza esperti sulla compilazione da poter seguire le istruzioni apposite.

Se si desidera impostare un ambiente per la compilazione e si è disposti all'eroismo che ne consegue, è possibile trovare una descrizione ragionevolmente recente su come fare quest'operazione nel Wiki di GIMP, su HowToCompileGimp/MicrosoftWindows [GIMP-WIKI-MS]. Dato che è un wiki, tutti sono liberi di modificarlo, perciò sentitevi liberi di aggiornarlo inserendo le vostre esperienze.

1.3.3. Apple Mac OS X

Il modo in cui installare plugin in OS X dipende da come si è installato GIMP stesso. Se si è coraggiosamente provato a installare GIMP attraverso un gestore di pacchetti come fink [DARWINORTS] o darwinports, [FINK] allora l'installazione dei plgin segue le istruzioni fornite per la piattaforma Linux. L'unica differenza è che un paio di plugin potrebbero anche essere disponibili direttamente nel repository del gestore dei pacchetti stesso.

Se d'altro canto si è preferito scegliere un pacchetto precompilato di GIMP come ad esempio GIMP.app è consigliato accontentarsi dei plugin precompilati inclusi. Si può provare ad ottenere una versione precompilata del plugin tanto desiderato dall'autore dello stesso. La compilazione in proprio dei binari comporta sfortunatamente l'instalallazione di GIMP attraverso uno dei gestori dei pacchetti summenzionati.

1.4. Scrittura dei plugin

Se si desidera imparare a scrivere un plugin, è possibile trovare aiuto sul sito degli sviluppatori di GIMP[GIMP-DEV-PLUGIN]. GIMP è un programma complesso ma il gruppo di sviluppo ha fatto un grande sforzo per abbassare la curva di apprendimento per la scrittura di plugin: ci sono buone istruzioni ed esempi e la libreria principale che i plugin usano per collegarsi con GIMP (chiamata «libgimp ») possiede un'API ben documentata. I bravi programmatori, imparando modificando plugin esistenti, sono spesso in grado di ottenere dei buoni risultati in appena in un paio di giorni di lavoro.