10.7. Het submenu “Script-Fu”
| 10. Het menu “Filters” |

### 10.7. Het submenu “Script-Fu”

Dit submenu bevat enkele opdrachten voor Script-Fu, speciaal de console van Script-Fu. Script-Fu is een taal voor het schrijven van scripts, die u in staat stellen een reeks opdrachten van GIMP automatisch uit te voeren.

#### 10.7.1. Activeren van het submenu

U kunt deze opdracht openen vanuit het hoofdmenu met Filters → Ontwikkeling → Script-Fu.

#### 10.7.2. Console Script-Fu

De console van Script-Fu is een dialoogvenster waar u interactief opdrachten van Scheme kunt testen.

De console bestaat uit een groot, te scrollen, hoofdvenster voor de uitvoer en een tekstvak aan de onderzijde om opdrachten van Scheme in te voeren. Wanneer u een argument van Scheme typt en dan drukt op de Enter-toets, zal de opdracht en zijn teruggegeven waarde worden weergegeven in het hoofdvenster.

Afbeelding 16.243. De console Script-Fu

U kunt meer informatie over Scheme, en voorbeelden van hoe de console van Script-Fu te gebruiken, vinden in Paragraaf 3, “Een handleiding voor Script-Fu”.

De knoppen in de console van Script-Fu

Verkennen

  De knop Verkennen staat naast het tekstvak voor de opdrachten van Scheme. Indien geklikt opent het venster van de procedureverkenner met een aanvullende knop Toepassen.

  Selecteer een PDB-procedure uit de lijst en druk op de knop Toepassen. De geselecteerde procedure en de namen van zijn parameters zullen in het tekstvak van de scriptconsole worden geplakt.

  Nu hoeft u alleen de namen van de parameters, na de naam van de procedure, te vervangen door de feitelijke waarden. Daarna kunt u de procedure aanroepen door op Enter te drukken.

Sluiten

  Drukken op deze knop sluit de console van Script-Fu.

Wissen

  Wanneer u op deze knop klikt zal de inhoud van het hoofdvenster worden verwijderd. Onthoud dat u de verwijderde inhoud niet terug kunt halen met de opdracht Opslaan.

Opslaan

  Deze opdracht laat u de inhoud van het hoofdvenster opslaan, dat is de uitvoer in de console van Script-Fu (inclusief de tekens “`>`”).

#### 10.7.3. Server opstarten

Deze opdracht zal een server opstarten, die argumenten van Script-Fu (Scheme) leest en uitvoert, die u er naartoe stuurt via een gespecificeerde poort.

Afbeelding 16.244. De opties voor de server van Script-Fu

Luister op IP

  Het IP-adres waarop de server van Script-Fu zal luisteren. Dit is gewoonlijk 127.0.0.1 (ook bekend als localhost). Wijzig dit alleen als u weet wat u doet.

Serverpoort

  Het poortnummer waar de server van Script-Fu zal luisteren. Het is mogelijk om meer dan een server te starten, door verschillende poortnummers te specificeren natuurlijk.

Serverlogbestand

  Optioneel kunt u de naam specificeren voor een bestand dat de server zal gebruiken om informatieve en foutberichten te loggen. Als er geen bestand is gespecificeerd, zullen de berichten naar stdout worden geschreven.

Het protocol voor de server van Script-Fu

Het protocol dat wordt gebruikt om te communiceren met de server van Script-Fu is heel simpel:

- Elk bericht (argument voor Script-Fu) met de lengte `L`, verstuurd naar de server, moet worden voorafgegaan door de volgende 3 bytes:

  Tabel 16.1. Header-indeling voor opdrachten

  Byte # | Inhoud | Beschrijving
  --- | --- | ---
  0 | 0x47 | Magisch byte ('G')
  1 | L div 256 | Hoge byte van `L`
  2 | L mod 256 | Lage byte van `L`

- Elk antwoord vanuit de server (teruggegeven waarde of foutbericht) van de lengte `L` zal worden voorafgegaan door de volgende 4 bytes:

  Tabel 16.2. Header-indeling voor antwoorden

  Byte # | Inhoud | Beschrijving
  --- | --- | ---
  0 | 0x47 | Magisch byte ('G')
  1 | foutcode | 0 bij succes, 1 bij fout
  2 | L div 256 | Hoge byte van `L`
  3 | L mod 256 | Lage byte van `L`

| Tip
Als u uw handen niet vuil wilt maken: er is een script voor Python, genaamd servertest.py, dat is meegeleverd met de broncode van GIMP, dat u als een eenvoudige shell voor de opdrachtregel voor de server van Script-Fu kunt gebruiken.

10.6. Het submenu “Python-Fu” |  | 11. Menu “Vensters”

Report a bug in GIMP Rapporteer een fout in de documentatie