3.6. Das Textbox-Skript erweitern

Wir fügen den Code an zwei Stellen ein: unmittelbar, bevor wir die Größe des Bildes anpassen, und am Ende des Skripts (um das neue Bild, die Ebene und den Text zurückzugeben).

Nachdem die Textbreite und -höhe ermittelt haben, müssen wir diese Werte auf der vom Nutzer spezifizierten Puffergröße basierend anpassen. Wir führen hier keine Fehlerprüfung durch um sicherzustellen, dass sie im Bereich 0-100% liegt, da es zum einen nicht gefährlich wäre und es zum anderen keinen Grund gibt, warum der Benutzer nicht einen Wert wie „200“ als Prozentwert für den Puffer eingeben sollte.

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

Wir machen hier nichts weiter, als den Puffer gemäß der Texthöhe zu setzen und ihn dann jeweils zweimal zur Bildhöhe und -breite zu addieren. (Wir addieren ihn zweimal in beide Richtungen, da der Puffer zu beiden Seiten des Textes hinzugefügt werden muss.)

Jetzt, wo wir die Größe des Bildes geändert haben, um einen Puffer zu erlauben, müssen wir den Text innerhalb des Bildes zentrieren. Das machen wir, indem wir ihn zur (x,y)-Koordinate von (theBuffer, theBuffer) verschieben. Ich habe diese Zeile hinter der Skalierung von Ebene und Bild eingefügt:

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

Sichern Sie nun Ihr Skript und probieren Sie es aus, nachdem Sie die (Prozeduren-)Datenbank aufgefrischt haben.

Was noch zu tun bleibt ist, das Bild, die Ebene und die Textebene zurückzugeben. Nach dem Anzeigen des Bildes fügen wir diese Zeile ein:

        (list theImage theLayer theText)
      

Das ist die letzte Zeile unserer Funktion und macht diese Liste anderen Skripten, die sie verwenden wollen, verfügbar.

Um unser neues Textbox-Skript in anderen Skripten zu verwenden, könnten wir etwa folgendes schreiben:

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

Gratuliere, Sie sind nun auf dem besten Wege zu Ihrem Schwarzen Gürtel in Skript-Fu!