Skript-Fu-Einstieg: Benutzereingaben

Aus GIMPForum

Wechseln zu: Navigation, Suche
<< Das Skript ^ Inhaltsverzeichnis ^ Fehlersuche >>

Benutzereingabe

GIMP sucht in einem Skript als erstes immer die Funktion (script-fu-register). Diese Funktion ist nicht im Prozeduren-Browser vorhanden, die musst du einfach kennen. Über (script-fu-register) wird nämlich geregelt, welche Funktionen aufgerufen werden, wie der Autor des Skripts heisst, Copyright-Informationen und was ganz wichtig ist: Benutzereingaben.

Die komplette Funktion sieht so aus:

(script-fu-register
        "text-effekt"                                              ;Name der Funktion, die aufgerufen werden soll
        "Mein 1. Skript"                                           ;Name des Skripts
        "Erstellt einen Texteffekt"                                ;Beschreibung des Skripts
        "Mohi"                                                     ;Name des Autors
        "Copyleft by Mohi"                                         ;Copyright-Infos
        "6. April 2008"                                            ;Datum
        ""                                                         ;Falls das Skript ein bereits bestehendes Bild bearbeitet, kommt hier der Typ (RGB etc.) rein
        SF-STRING      "Text"             "Benutzertext"           ;Erklärung unten
        SF-ADJUSTMENT  "Schriftgroesse"   '(150 1 500 1 10 1 0)    ;Erklärung unten
        SF-COLOR       "Farbe"            '(0 255 24)              ;Erklärung unten
        SF-FONT        "Schriftart"       "Sans"                   ;Erklärung unten
)

Ein _ markiert das folgende Zeichen als Tastenkürzel, womit in einem Menü per Tastatur direkt zum Skript gesprungen werden kann. Wenn der Name des Skripts beispielsweise "Mein 1. S_kript" lauten würde, würde ein Druck auf die K-Taste (vorausgesetzt, das richtige Dropdown-Menü ist geöffnet) sofort das Skript selektieren.

Die Zeilen, welche mit einem SF beginnen sind nun die Benutzereingaben. SF-STRING liest beispielsweise einen Text ein, "Text" nach dem SF-STRING ist die Beschriftung des Eingabefeldes und "Benutzertext" ist der Text, der beim Aufruf des Skripts standardmässig im Eingabefeld steht.


SF-ADJUSTMENT stellt dem Benutzer ein Kontrollelement bereit, womit er numerische Werte auswählen kann. Hierbei gibt es zwei Verschiedene Typen: Slider und Rollbox. Die vielen Zahlen in der Liste hinter "Schriftgroesse" haben folgende Eigenschaften:

Das ist ein Slider.
Und das ist eine Rollbox.
(Start-Wert
 Min-Wert
 Max-Wert
 Kleiner Schritt
 Grosser Schritt
 Ganz- (0) oder Fliesskommazahl(1)
 Slider(0) oder Rollbox(1)
)


SF-COLOR sollte eigentlich selbsterklärend sein. Das erste Element ist wieder der Name des Feldes und das zweite Element, die Liste, ist der RGB-Wert eines knalligen Grüns.

SF-FONT stellt ein Feld zur Auswahl von Schriftarten bereit.

Auch hier ist die Reihenfolge wichtig. Diese muss mit der Reihenfolge der Parameter in der define-Funktion übereinstimmen.

(define (text-effekt sfText sfTextgroesse sfFarbe sfFont))

Hier wurde zuerst der Text, dann die Schriftgrösse, dann die Farbe und zum Schluss die Schriftart aufgeschrieben. Würden z.B. die Plätze von SF-COLOR und SF-STRING vertauscht werden, würde als Text der Farbwert und als Farbe der Text genommen werden, was wohl zu einem Fehler führen würde.

Eine Liste aller SF-Funktionen inklusive einer Beschreibung steht am Ende dieses Kapitels.

Nach der script-fu-register-Funktion kommt noch eine Zeile Code und das Skript ist fertig. (script-fu-menu-register "text-effekt" "<Toolbox>/Xtns/Eigene Skripts") Dadurch wird in GIMP ein neuer Menüeintrag angelegt. Anstatt <Toolbox> könnte auch <Image> stehen, dann würde der Eintrag im Bildfenster erscheinen.

Seit GIMP 2.6 gibt es allerdings keinen Unterschied mehr zwischen <Toolbox> und <Image>, da ein Bildfenster immer offen ist und die Menüleiste der Toolbox entfernt wurde. Der Menüpunkt Xtns wird nun gleichbedeutend mit Filters verwendet.

SF-Liste:

SF-IMAGE       INT32 (Bild-ID)         Bild-ID einlesen
SF-DRAWABLE    INT32 (Ebenen-ID)       Ebenen-ID einlesen
SF-TOGGLE      TRUE oder FALSE         Fügt ein Kontrollkästchen ein, das angekreuzt werden kann
SF-PATTERN     STRING (Muster-Name)    Muster über seinen Namen auswählen
SF-ADJUSTMENT  LISTE (start-wert min-wert max-wert kleiner-schritt grosser-schritt INT32(0) oder FLOAT(1) slider(0) oder rollbox(1))
SF-FILENAME    STRING (Pfad)           Pfad eines Bildes auswählen
SF-STRING      STRING                  Eingabefeld für normalen Text
SF-FONT        STRING (Schriftart)     Schriftart auswählen
SF-COLOR       LISTE (R G B)           RGB-Wert einer Farbe wählen; für jedes Element gehen Werte von 0-255
SF-GRADIENT    STRING (Verlaufsname)   Verlauf auswählen
SF-OPTION      LISTE (Strings)         Auswahlliste mit mehreren Möglichkeiten
<< Das Skript ^ Inhaltsverzeichnis ^ Fehlersuche >>
Persönliche Werkzeuge