3.6.  Estendere lo script Text Box

Si aggiungerà il codice in due posizioni: appena prima il ridimensionamento dell'immagine e alla fine dello script (per restituire l'immagine, il livello e il testo).

Dopo aver ottenuto le dimensioni del testo si devono aggiustare i valori in base all'entità della spaziatura specificata dall'utente. Non si effettuerà nessun controllo di errore per assicurarsi che il valore sia compreso tra 0 e 100 anche per dare la possibilità di immettere valori superiori come ad esempio "200".

        (set! theBuffer (* theImageHeight (/ inBufferAmount 100) ) )
        (set! theImageHeight (+ theImageHeight theBuffer theBuffer) )
        (set! theImageWidth  (+ theImageWidth  theBuffer theBuffer) )
      

Il codice imposta la spaziatura in basse all'altezza del testo e la somma due volte sia all'altezza che alla larghezza della nuova immagine. (La si somma due volte perchè la spaziatura è su entrambi i lati).

Ora che l'immagine è stata ridimensionata tenendo conto della spaziatura si deve centrare il testo all'interno dell'immagine. Questo si ottiene spostando lungo le coordinate (x, y) il livello del testo di (theBuffer, theBuffer). Aggiungere la linea seguente dopo il ridimensionamento dell'immagine:

        (gimp-layer-set-offsets theText theBuffer theBuffer)
      

Salvare lo script e provarlo dopo aver aggiornato il database.

Quello che rimane è ritornare l'immagine, il livello e il livello del testo. Dopo la visualizzazione dell'immagine aggiungere la linea seguente:

        (list theImage theLayer theText)
      

Questa è l'ultima linea della funzione, la lista viene quindi resa disponibile ad altri script che vogliano farne uso.

Per utilizzare il nuovo script Text Box in un'altro script si potrebbe scrivere qualcosa come:

        (set! theResult (script-fu-text-box
                         "Some text"
                         "Charter" "30"
                         '(0 0 0)
                         "35"
                        )
        )
        (gimp-image-flatten (car theResult))
      

Complimenti, si è ora in procinto di acquisire la Cintura Nera di Script-Fu!