10.6. Il sottomenu «Script-Fu»

Il comando Script-Fu mostra un sottomenu che contiene molti script Script-Fu e opzioni, inclusa la console Script-Fu. Script-Fu è un linguaggio per scrivere script, che permette di eseguire una serie di comandi GIMP automaticamente.

10.6.1. Activating the Submenu

  • You can access this command from the main menu through FiltersDevelopmentScript-Fu.

10.6.2. Ricarica gli script

Sarà necessario questo comando ad ogni aggiunta, rimozione o modifica di uno script-fu. Il comando provoca la ricarica degli script-fu e la ricostruzione totale dei menu contenenti gli script-fu. Se non si usa il comando, GIMP non sarà in grado di rilevare i cambiamenti sino al prossimo riavvio.

Notare che non si otterrà nessun riscontro dell'operazione avvenuta, a meno che non si salvi, se uno degli script fallisse per qualche motivo.

10.6.3. Console script-fu

La console script-fu è una finestra di dialogo entro la quale è possibile sperimentare interattivamente i comando Scheme.

The console consists of a large scrollable main window for output and a text box at the bottom to enter Scheme commands. When you type a Scheme statement and then press the Enter key, the command and its return value will be displayed in the main window.

Figura 16.249. La console script-fu

La console script-fu

Si troverà ulteriori informazioni sul linguaggio Scheme ed esempi su come usare la console Script-Fu in Sezione 3, «Una guida sugli Script-Fu»." msgstr ""

I pulsanti della console script-fu

Scorri

The Browse button is next to the Scheme commands text box. When clicked, the procedure browser window opens with an additional Apply button.

Select a PDB procedure from the list and press the Apply button. The selected procedure and its parameter names will be pasted into the text box of the Script Console.

Now you just have to replace the parameter names after the procedure name with actual values. Then you can call the procedure by pressing Enter.

Chiudi

Premendo questo pulsante si chiude la console script-fu.

Cancella

Quando si fa clic su questo pulsante, il contenuto della finestra principale verrà rimosso. Notare che non è possibile ottenere nuovamente il contenuto cancellato usando il comando Salva.

Salva

Questo comando permette di salvare il contenuto della finestra principale, cioè la console dei risultati degli script-fu (inclusi i caratteri «>»-).

10.6.4. Avvia il server

Questo comando fa partire un server che legge ed esegue i comandi script-fu (Scheme) che vengono spediti ad esso tramite una porta specificata.

Figura 16.250. Le opzioni del server script-fu

Le opzioni del server script-fu

Porta del server

Il numero di porta sulla quale ascolterà il server script-fu. È possibile eseguire più di un server contemporaneamente, naturalmente specificando numeri di porta differenti.

File di log del server

Opzionalmente è possibile specificare il nome di un file per il server da usare per annotare le informazioni sul funzionamento e i messaggi di errore. Se non viene specificato alcun file, questi messaggi verranno scritti sullo stdout.

Il protocollo server script-fu

Il protocollo usato per comunicare con il server script-fu è molto semplice:

  • Ogni messaggio (comando script-fu) di lunghezza L spedito al server deve essere preceduto dai seguenti 3 byte:

    Tabella 16.1. Formato delle intestazioni per i comandi

    Byte # Contenuto Descrizione
    0 0x47 Byte "magico" ("G")
    1 L div 256 Byte alto di L
    2 L mod 256 Byte basso di L

  • Ogni risposta dal server (valore restituito o messaggio di errore) di lunghezza L sarà preceduta dai seguenti 4 byte:

    Tabella 16.2. Formato delle intestazioni per le risposte

    Byte # Contenuto Descrizione
    0 0x47 Byte "magico" ("G")
    1 codice di errore 0 per successo, 1 per errore
    2 L div 256 Byte alto di L
    3 L mod 256 Byte basso di L

[Suggerimento] Suggerimento

Se non si desidera sporcarsi le mani: esiste uno script in Python di nome servertest.py distribuito con il sorgente di GIMP che può essere usato come semplice shell a riga di comando per il server script-fu.