Capitolo 13. Scrittura script e plugin

Indice

1. Plug-in
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
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. Adding Additional Functionality
3.6. Estendere lo script Text Box
3.7. Lo script e il suo funzionamento
4. A Python plug-in writing Tutorial
4.1. The basic elements of a plug-in for GIMP

1. Plug-in

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 GIMP 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 circa 100-200 linee di codice C.

Diverse dozzine di plugin sono inclusi nella distribuzione principale di GIMP e installati automaticamente con GIMP. Gran parte di essi sono accessibili attraverso il menu Filtri (in effetti, qualsiasi cosa in quel menu è un plugin), e un certo numero è distribuito in altri menu. Spesso vengono usati senza neanche la consapevolezza di usare un plugin: per esempio la funzione "Normalizza" per la correzione automatica del colore è un plugin malgrado non ci sia niente nel suo funzionamento che ne indichi la natura. Persino l'importazione e l'esportazione di immagini vengono fatte tramite plugin.

Chiunque può scrivere un plugin GIMP e renderlo disponibile online. Ci sono molti utili plugin ottenibili in questo modo. Alcuni di questi sono persino descritti da qualche parte nel manuale utente.

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 vengono tutti testati e curati dagli sviluppatori. I plugin che si possono scaricare 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 di essi interessa, la rispettiva capacità di 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. Tutto questo non viene detto con l'intento di scoraggiare gli utenti, ma semplicemente per assicurare che si sia compreso bene che non tutti i plugin disponibili online forniscono ciò che ci si aspetta.

[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 sicurezza. Si consiglia di non installare un plugin se non proveniente da una fonte affidabile e sicura.

[Nota] Nota

I plugin scritti per una certa versione di GIMP potrebbero non funzionare con altre versioni, malgrado gli sviluppatori di GIMP cerchino di ridurre al minimo i cambiamenti che possano influenzare il funzionamento dei plugin. Comunque, in generale, ci si può aspettare problemi seri con i plugin in particolare quando ci solo cambiamenti importanti di versione. Quando un plugin fatto per una precedente versione non funziona più correttamente, è necessario portarlo alla nuova versione e quest'operazione alle volte può essere semplice, ma alle volte non lo è. Morale: prima di provare ad installare un plugin assicurarsi che sia compatibile con la propria versione di GIMP.

1.2. Uso dei plugin

Solitamente è 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 non 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. Spesso è possibile continuare il proprio lavoro senza preoccuparsi troppo.

[Nota] Nota

Dato che i plugin sono programmi separati, essi comunicano con GIMP in modo 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.

Data 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, il plugin può andare in crash. Anche quando questo non succede, il prodotto può risultare incorretto. Sarebbe quindi meglio 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 il proprio lavoro.

1.3. Installazione di nuovi Plugin

I plugin distribuiti con GIMP non richiedono installazione. I plugin che si scaricano invece sì. Solitamente la posizione predefinita è nella cartella di GIMP dell'utente in una sottocartella di /plug-ins, dove il nome della cartella deve essere lo stesso del nomefile del plugin. È possibile trovare le posizioni predefinite dove GIMP cerca i plugin, nelle preferenze delle cartelle datis. Là sarà anche possibile aggiungere nuove posizioni dove GIMP cercherà i plug-in. Ci sono diversi scenari, a seconda del Sistema Operativo che si sta usando e come il plugin è strutturato.

1.3.1. Linux / Sistemi di tipo 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, installarlo è solo questione di eseguire il comando gimptool-3.0 --install borker.c. Questo comando compila il plugin e lo installa nella cartella personale dei plugin in ~/gimp-2.10/plug-ins 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!

1.3.2. Windows

Gran parte dei plugin di GIMP per Windows dispongono di un installatore, o possono essere scaricati in forma di binario precompilato pronto per essere copiato in una cartella di propria scelta riconosciuta da GIMP.

Se un installatore è disponibile, esso dovrebbe essere in grado di fare tutto il lavoro di selezione della cartella appropriata e di copia di tutti i file importanti. Se così non fosse, è necessario controllare nelle preferenze delle cartelle di GIMP dove i plugin dovrebbero essere copiati. Si ricordi che ogni plugin necessita di una propria cartella con lo stesso nome del plugin.

1.3.3. Apple Mac OS X

Il modo in cui installare plugin in OS X dipende da come si è installato GIMP stesso. Se siete stati coraggiosi e avete installato GIMP attraverso un gestore di pacchetti come fink [FINK] o darwinports, [DARWINPORTS] allora l'installazione dei plugin funzionerà esattamente allo stesso modo della piattaforma Linux. L'unica differenza è che un paio di plugin potrebbero anche essere disponibili direttamente nel repository del gestore dei pacchetti stesso, per cui bisogna provare.

Se d'altro canto si è preferito scegliere un pacchetto precompilato di GIMP come ad esempio GIMP.app, molto probabilmente si desidererà anche un plugin precompilato. 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'installazione di GIMP.

1.3.4. Esecuzione del plugin installato

Una volta installato il plugin, come attivarlo? Il percorso del menu è determinato dal plugin stesso, perciò per rispondere a questa domanda è necessario consultare la documentazione allegata al plugin (se c'è), esplorare i menu, o usare la funzione di ricerca azioni di GIMP premendo / ed inserendo il nome del plugin. Se si sa come fare, è possibile anche guardare nel codice sorgente per cercare in quale menu si registra.

Per plugin più complessi, organizzati come una cartella con più file, 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: il codice con così poca considerazione per l'utente è probabile che sia frustrante in molti altri aspetti.

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

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, che imparano modificando plugin esistenti, sono spesso in grado di ottenere dei buoni risultati in appena un paio di giorni di lavoro.