3.4.  Il primo script Script-Fu

Procediamo con la quarta lezione, il primo script Script-Fu.

Si registri ora la funzione in GIMP. Ciò si ottiene richiamando la funzione <code>script-fu-register</code>. Quando GIMP legge uno script eseguirà questa funzione che registra lo script nel database delle procedure. Si può posizionare questa funzione in ogni parte dello script ma di solito la si posiziona alla fine dopo tutto il codice.

Ecco il listato per registrare questa funzione (si chiariranno a breve gli argomenti):

        (script-fu-register
          "script-fu-text-box"                        ;func name
          "Text Box"                                  ;menu label
          "Creates a simple text box, sized to fit\
            around the user's choice of text,\
            font, font size, and color."              ;description
          "Michael Terry"                             ;author
          "copyright 1997, Michael Terry"             ;copyright notice
          "October 27, 1997"                          ;date created
          ""                     ;image type that the script works on
          SF-STRING      "Text:"         "Text Box"   ;a string variable
          SF-FONT        "Font:"         "Charter"    ;a font variable
          SF-ADJUSTMENT  "Font size"     '(50 1 1000 1 10 0 1)
                                                      ;a spin-button
          SF-COLOR       "Color:"        '(0 0 0)     ;color variable
        )
        (script-fu-menu-register "script-fu-text-box" "<Toolbox>/Xtns/Script-Fu/Text")
      

Se si salva questa funzione in un file di testo con estensione .scm all'interno della directory degli script, quindi si seleziona Xtns->Script-Fu->Rinfresca gli scripts, questo nuovo script comparirà come Xtns->Script-Fu->Text->Text Box.

Se si invoca questo nuovo script naturalmente non succede nulla, ma si possono osservare le richieste di parametri definite quando si registra lo script (ulteriori informazioni più avanti).

Infine se si richiama il Navigatore delle procedure ( Xtns->Navigatore delle procedure), si noterà che lo script compare ora nel database.

Per registrare lo script in GIMP si richiama la funzione script-fu-register, passando i sette parametri richiesti e aggiungendo gli argomenti dello script insieme con una descrizione e un valore predefinito per ciascun argomento.

Gli argomenti richiesti

  • Il nome della funzione definita. Questa è la funzione richiamata quando si invoca lo script (il punto di entrata). E' obbligatoria perchè si possono definire altre funzioni all'interno dello stesso file e GIMP deve sapere quale tra queste funzioni richiamare. Nell'esempio si è definita solo una funzione, text-box, che è stata registrata.

  • La collocazione nel menu dove lo script sarà inserito. L'esatta collocazione è specificata come un percorso di file Unix, con “<Toolbox>” o “<Image>” come radice.

    Se lo script non opera su immagini preesistenti (e quindi ne crea di nuove come lo script Text Box), è preferibile inserirlo nel menu della casella strumenti -- questo è il menu nella finestra principale di GIMP (dove sono posizionati tutti gli strumenti: quelli di selezione, la lente di ingrandimento, ecc.).

    Se lo script lavora su una immagine in corso di modifica è preferibile inserirlo nel menu che compare quando si fa clic col tasto destro su un'immagine aperta. La parte restante del percorso indica la voce del menu e dei submenu. Quindi si registri lo script Text Box script nel sottomenu Text del sottomenu Script-Fu del menu Xtns della casella strumenti ( Xtns->Script-Fu->Text->Text Box ).

    Si noti che il sottomenu Text non è presente all'inizio -- GIMP crea automaticamente i menu inesistenti.

  • Una descrizione dello script che viene visualizzata nel Navigatore delle procedure.

  • Un nome autore (l'autore dello script).

  • Informazioni sul Copyright.

  • La data di creazione dello script o quella della sua ultima revisione.

  • I tipi di immagine su cui lo script opera. Questo argomento può essere uno tra: RGB, RGBA, GRAY, GRAYA, INDEXED, INDEXEDA. Può anche essere non presente nel caso si crei una nuova immagine e quindi non risulti applicabile.