photomappe.de

Script-Fu Debugging

Die erste Informationsquelle für Scriptprogrammierer in Gimp ist der Procedure-Browser. Hier sind alle verfügbaren Funktionen mit ihren Parametern beschrieben. Der Procedure-Browser ist unter dem Menupunkt Hilfe -> Prozeduren-Browser (Help -> Procedure Browser) zu erreichen.

Das Fenster des Gimp Procedure-Browsers

Hier sieht man zum Beispiel die Funktion file-jpeg-load (lädt ein JPEG-Bild, stellt es nicht dar!). Diese Funktion hat drei Parameter. Der Parameter run-mode ist nur für Script-fu wichtig. In Python-Scripten (Python-fu) wird dieser Parameter nicht übergeben und die Parmeterzahl verringert deshalb sich um Eins.

Das Suchfeld über der Funktionsliste unterstützt die Suche nach Namensteilen, d.h. man kann z.B. nur jpeg eingeben und bekommt alle Funktionen aufgelistet die mit JPEG-Bildern arbeiten.

Script-Fu Konsole

Funktionen können in der Script-Fu Konsole sofort ausprobiert werden. Die Konsole ist über das Menu Filter -> Skript-Fu -> Konsole (Filters -> Script-Fu -> Console) zu erreichen und öffnet dieses Fenster. Es teilt sich in einen grossen Ausgabebereich und eine Eingabezeile.

Das Fenster der Script-Fu Konsole

Kommandos mit ihren Parametern müssen in Scheme in runde Klammern gefasst werden. Für die Funktion file-jpeg-load könnte das also so aussehen:

(file-jpeg-load RUN-NONINTERACTIVE "IMG356.jpg" "IMG356.jpg")

Das Fenster der Script-Fu Konsole

Die Konsole quittiert das Kommando entweder mit dem Rückgabewert der Funktion oder mit Error und einer Fehlerbeschreibung. Der Rückgabewert ist in diesem Fall (file-jpeg-load) die Referenz auf das geladene Bild. Diese kann nun genutzt werden um das Bild mit

(gimp-display-new 3)

anzuzeigen.

Ein häufig auftretender Fehler ist den run-mode zu vergessen. Dies wird umgehend mit folgender Meldung quittiert:

Error: Invalid number of arguments for file-jpeg-load (expected 3 but received 2)

Wenn man schreibfaul ist kann man die Konstanten natürlich auch durch ihre Werte ersetzen:

RUN-INTERACTIVE    0
RUN-NONINTERACTIVE 1

Die Fehlermeldungen sind schon sehr hilfreich, ganz besonders wenn man nicht die richtige Anzahl Parameter übergibt oder einen Fehler im Funktionsnamen hat. Leider gibt es sie nicht in deutsch.

Weiter mit Python-Fu Script als Batch ausführen.