10.6. Das Untermenü „Skript-Fu“
| 10. Das Menü „Filter“ |

### 10.6. Das Untermenü „Skript-Fu“

Abbildung 15.203. Das Untermenü „Skript-Fu“

Dieses Untermanü enthält einige Skript-Fu-spezifische Kommandos, insbesondere die Skript-Fu-Konsole. Skript-Fu ist eine Programmiersprache für (kleine) Skripte, mit denen Sie GIMP-Kommandos automatisieren können.

#### 10.6.1. Aufruf des Untermenüs

- Dieses Untermenü kann aus dem Bildfenster erreicht werden: Filter → Skript-Fu.

#### 10.6.2. Skripte auffrischen

Dieses Kommando brauchen Sie immer dann, wenn Sie ein Skript-Fu-Skript hinzufügen, entfernen oder verändern. Mit diesem Befehl werden alle Skript-Fu-Skripte neu eingelesen und die Menüs, die Skript-Fu-Skripte enhalten, vollständig neu aufgebaut. Wenn Sie dieses Kommando nicht anwenden, werden Änderungen erst beim nächsten Programmstart von GIMP registriert.

Beachten Sie, dass Sie keine Rückmeldung erhalten, außer wenn die Registrierung eines Ihrer Skripte fehlschlägt.

#### 10.6.3. Skript-Fu-Konsole

Die Skript-Fu-Konsole ist ein Dialogfenster, in dem Sie interaktiv Scheme-Kommandos ausprobieren können.

Die Konsole besteht aus einem rollbaren Hauptfenster für die Ausgabe und einem Textfeld darunter für die Eingabe von Scheme-Anweisungen. Wenn Sie eine Anweisung tippen und dann die Enter-Taste drücken, wird die Anweisung und ihr Rückgabewert im Hauptfenster angezeigt.

Abbildung 15.204. Die Skript-Fu-Konsole

Mehr Informationen zu Scheme sowie Beispiele zur Benutzung der Script-Fu-Konsole finden Sie in Abschnitt 3, „Ein Skript-Fu-Tutorial“.

Die Schaltflächen der Skript-Fu-Konsole

Durchsuchen

  Diese Schaltfläche befindet sich neben dem Textfeld zur Eingabe von Scheme-Anweisungen. Wenn Sie sie anklicken, öffnet sich das Fenster des Prozeduren-Browsers. Allerdings hat dieses Dialogfenster jetzt unten einen zusätzlichen Schalter:

  Die zusätzliche Schaltfläche des Prozeduren-Browsers

  Wenn Sie nun im Prozeduren-Browser auf den Schalter Anwenden klicken, wird die gerade ausgewählte Prozedur in das Textfeld eingetragen:

  PDB-Funktion angewendet

  Sie müssen jetzt nur noch die Parameternamen (im Beispiel: „layer“ und „mode“) durch tatsächliche Werte ersetzen, dann können Sie die Prozedur mit Enter aufrufen.

Schließen

  Ein Klick auf diese Taste schließt die Skript-Fu-Konsole.

Leeren

  Wenn Sie auf diese Schaltfläche klicken, wird der Inhalt des Hauptfensters entfernt. Er läßt sich dann auch mit einem späteren Speichern nicht mehr rekonstruieren.

Speichern

  Mit diesem Kommando können Sie den Inhalt des Hauptfensters, also die Ausgabe der Skript-Fu-Konsole, speichern (einschließlich der „`>`“-Zeichen).

#### 10.6.4. Server starten

Mit diesem Kommando starten Sie einen Server, an den Sie Scheme- bzw. Script-Fu-Anweisungen über einen bestimmten Port senden können.

Abbildung 15.205. Die Einstellungen des Skript-Fu-Servers

Server-Port

  Die Nummer des Ports, an dem der Skript-Fu-Server lauscht. Es ist möglich, mehrere Server zu starten, wenn Sie unterschiedliche Portnummern verwenden.

Server-Logdatei

  Optional können Sie hier den Namen einer Datei angeben, die der Server für die Ausgabe von verschiedenen Meldungen verwendet. Falls keine Datei angegeben wurde, wird einfach in die Standardausgabe geschrieben.

Das Skript-Fu-Server-Protokoll

Das Protokoll, das für die Kommunikation mit dem Server verwendet wird, ist ganz einfach:

- Jeder Nachricht (Skript-Fu-Anweisung) der Länge `L`, die Sie an den Server senden, müssen folgende 3 Bytes vorangestellt werden:

  Tabelle 15.1. Header für Skript-Fu-Server-Kommandos

  Byte-Nr. | Inhalt | Beschreibung
  --- | --- | ---
  0 | 0x47 | Erkennung-(„magisches“)-Byte ('G')
  1 | L div 256 | Höherwertiges Byte von `L`
  2 | L mod 256 | Niederwertiges Byte von `L`

- Jede Antwort des Servers besteht aus einer Nachricht (Rückgabewert oder Fehlermeldung) der Länge `L`, der folgende 4 Bytes vorangestellt sind:

  Tabelle 15.2. Header für Skript-Fu-Server-Antworten

  Byte-Nr. | Inhalt | Beschreibung
  --- | --- | ---
  0 | 0x47 | Erkennung-(„magisches“)-Byte ('G')
  1 | Fehlercode | 0 bei Erfolg, sonst 1
  2 | L div 256 | Höherwertiges Byte von `L`
  3 | L mod 256 | Niederwertiges Byte von `L`

| Tipp
Falls Sie sich nicht die Hände schmutzig machen wollen: Der Quellcode von GIMP enthält ein Python-Skript namens servertest.py, das Sie wie eine einfache Shell für den Skript-Fu-Server verwenden können.

10.5. Das Untermenü „Python-Fu“ |  | 11. Das Menü „Fenster“