3.6. Compléter le script Text Box

Nous allons ajouter du code à deux endroits : juste avant de redimensionner l'image, et à la fin du script (pour retourner la nouvelle image, le calque et le texte).

Après avoir obtenu la hauteur et la largeur du texte, nous devons changer ces valeurs sur la base de la taille du tampon spécifiée par l'utilisateur. Nous ne commettrons pas d'erreur en ne recherchant pas si la valeur est dans l'intervalle 0-100%, parce que ce n'est pas vital, et qu'il n'y a aucune raison que l'utilisateur ne puisse pas donner une valeur de 200% au tampon.

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

Tout ce que nous faisons ici est de régler le tampon sur la hauteur du texte, et de l'ajouter deux fois à la hauteur et à la largeur de notre nouvelle image (deux fois parce que le tampon doit être ajouté des deux côtés du texte).

Maintenant que nous avons redimensionné l'image pour permettre une zone tampon, nous devons centrer le texte dans l'image. Nous le faisons en le déplaçant vers les coordonnées (x,y) de (theBuffer, theBuffer). J'ai ajouté cette ligne après le redimensionnement du calque et de l'image :

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

Poursuivez et enregistrez votre script, puis testez-le après avoir rafraîchi la base de données.

Tout ce qui reste à faire est de retourner notre image, le calque et le calque de texte. Après l'affichage de l'image, nous ajoutons cette ligne :

        (list theImage theLayer theText)
      

C'est la dernière ligne de la fonction, qui rend cette liste disponible pour les autres scripts qui veulent l'utiliser.

Pour utiliser notre nouveau script de boîte de texte dans un autre script, nous pourrions écrire quelque chose comme :

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

Félicitations, vous êtes sur le chemin de votre Ceinture Noire de Scrip-Fu !