# GIMP/ Erweiterungen

Dieser Teil gehört zum Buch „GIMP“.
Kurzinhalt: Dieser Band stellt Infos zum Thema "Skripten und Programmieren für GIMP" bereit. [Vorsicht!!!: Die in diesem Band enthaltenen Beispiele eignen sich mitunter nur zum Einsatz unter Linux. Wenn nicht explizit Linux gefordert wird, so wird dies bekanntgegeben.]

# Buchtext != Tutorial

Diese Texte sollen nur als Einführung in das Themengebiet dienen. Ein "Tutorial" für Script-Fu und dessen Anwendung sollten unter http://de.wikibooks.org/wiki/GIMP/_Tutorials/_Script-Fu stehen. Dort werden die einzelnen Schritte ausführlich dargelegt und Aufgaben als Test gestellt.

# Script-Fu Einstieg

Script-Fu (Tiny-Fu) ist die Integration der Sprache Scheme in Version R5RS als Automatisierungswerkzeug und vieles mehr. Filter werden gleichermaßen mit Script-Fu bereichert, wie auch die "lästigen" Stapelverarbeitungs-Handlungen. Zur Info die GIMP Dokumentation: http://docs.gimp.org/2.6/de/gimp-concepts-script-fu.html#id2901881 allerdings bezieht sich der erste Link auf einen temporären Raum und muss ggf. ersetzt werden.
Leider ist die Oberfläche zu Script-Fu etwas zu gewöhnungsbedürftig, um wirklich gut als Beginner damit zurecht zu kommen. Insbesondere die "Konsole" hätte m. E. mehr Aufmerksamkeit verdient, da sich erst das Wissen um alternative Editoren angeignet werden muss, um eigens erstellte Scripts "vernünftig" auszuprobieren. Vor allem der Zusatz "für kleinere" Scripts, der im GIMP Handbuch zu finden ist, verwundert den Fachmann doch sehr. SCHEME ist ja eine durchaus mächtige "wenn auch nicht ganz eingängige" Programmiersprache, mit der man erstaunliches erreichen kann. Dass die Konsole dem Ansatz nicht unbedingt Rechnung trägt, sei hiermit nochmals betont. Längere Scripts einzugeben macht hier wahrlich keine Freude. (untertrieben gesagt).
Wenn hier von Script-Fu Werkzeugen in GIMP die Rede ist, ist entweder Script-Fu Konsole, Script-Fu Server gemeint. Unterschiede: Die Konsole ist z.B dafür da, etwas selbst zu automatisieren, und der Server ist angehalten die vorher programmierte Aktion automatisch ohne weiteres Zutun des Nutzers automatisch ablaufen zu lassen.
So nun aber zu allererst: Wie kann ich "Script-Fu" am besten bei mir/uns einsetzen? Das hängt davon ab, was man machen/wissen möchte. Am Anfang falls viel selbst angepasst werden soll, empfiehlt es sich, sich mit der zugrunde liegenden Sprache "Scheme" ein wenig vertraut zu machen.

# Scheme?!?

Scheme wurde von den Herren Steele und Sussman am Massachusetts Institute of Technology [M.I.T] (CSAIL) erfunden. Es ist eine Lehr/Hoch-sprache der zweiten Generation von Programmiersprachen. Ein in Fachkreisen bekannter Vorgänger von Scheme ist LISP (LISt Processing) unter anderem für komplexe Listenoperationen in der künstlichen Intelligenz zuständig. Vorweg gesagt; Scheme besitzt eine baum-artige Struktur der einzelnen Definitionen und diese werden nicht iterativ, sondern nur rekursiv ausgewertet. w:Rekursion Zweitens: Scheme wertet nicht wie "normale" Taschenrechner aus, sondern so: [operator 1.operand 2.operand] BSP: (+ 1 2) ;ergibt 3
kurzer Abstecher: w:Scheme

# Empfohlener Editor

Falls eine eigene Script-Struktur benötigt wird, welche komplex werden soll, ist vlt. der Editor DrRacket http://www.drracket.org hilfreich. Warum ausgerechnet diesen? Lange Geschichte. Racket ist Scheme beziehungsweise dessen Tochtersprache. PLT, so heißt die Gruppierung, die PLT-Scheme immer weiter entwickelt hat und auch betreut, hat sich dazu entschlossen, ein neues Kapitel in puncto Scheme-Komfort und Effizienz und Aktualität, aufzuschlagen.
w:DrRacket hat nicht nur ein "angenehme" Benutzerschnittstelle sondern auch noch gleich diverse Produktivitätswerkzeuge von Haus aus miteingebaut.
Hier wären der "Stepper", "Debugger", REPL und weiteres zu nennen. Das von Smalltalk bekannte UNIT-Testing Framework wurde auch hier umgesetzt, unter dem Namen RackUnit. In Zeiten von DrScheme gab es ebenfalls schon einfache Testmethoden.
Hier die "offizielle" Dokumentation des Werkzeugs [engl.] http://docs.racket-lang.org/drracket/index.html

# GIMP Datenbank für prozedurale Inhalte [PDB]

Das installieren von .ss Dateien: Die .ss/scm/rkt Dateien im Scripts Ordner speichern. Wenn Sie sich nicht sicher sind in welchem Scripts Ordner sie die Daten befinden, so können sie dies herausfinden und zu <Toolbox>/File/Preferences -> Folders -> Scripts gehen. Wenn mehr als ein Ordner angezeigt wird, dann sollte jeder Ordner funktionieren. Machen sie die .ss Datei ausführbar. Für UNIX Systeme, schreiben Sie dies in die Shell: chmod +x Dateiname.ss Für andere Betriebssysteme, könnte es sein, das es Unterschiede gibt, oder es nicht notwendig ist. Schließen und öffnen Sie GIMP wieder.
Gilt für alle Versionen von Script-Fu. Alle Scripts werden "zentral" in der PDB registriert, und damit für das Programm aber auch für Plug-ins selbst zugänglich gemacht. Die "Registrierung" eines Scripts ist nicht besonders schwer und sollte kein Problem darstellen. Hiermit kann man die Datenbank durchsuchen:

# GIMP online Datenbank für alle möglichen Funktionen z.B Filter [Registry]

GIMP Registry. Zu finden unter http://registry.gimp.org (Leider momentan nur auf Englisch verfügbar) Häufig gestellte Fragen und Antworten sind hier zu finden: http://registry.gimp.org/node/23868 Die Dokumentation der Registry findet sich (derzeit) unter: http://registry.gimp.org/node/23851

# Script-Fu Versionen [vor GIMP 2.4/nach GIMP 2.4]

Python ist von den jüngeren GIMP Nutzern hoch erfreut aufgenommen worden, doch Scheme/Racket muss sich nicht verstecken.
* Druckversion des Buches GIMP/ Erweiterungen
* Dieses Buch umfasst derzeit etwa DIN-A4-Seiten einschließlich Bilder.
* Wenn Sie dieses Buch drucken oder die Druckvorschau Ihres Browsers verwenden, ist diese Notiz nicht sichtbar.
* Zum Drucken klicken Sie in der linken Menüleiste im Abschnitt „Drucken/exportieren“ auf Als PDF herunterladen.
* Mehr Informationen über Druckversionen siehe Hilfe:Fertigstellen/ PDF-Versionen.
* Hinweise:
* Für einen reinen Text-Ausdruck kann man die Bilder-Darstellung im Browser deaktivieren:
* Internet-Explorer: Extras > Internetoptionen > Erweitert > Bilder anzeigen (Häkchen entfernen und mit OK bestätigen)
* Mozilla Firefox: Extras > Einstellungen > Inhalt > Grafiken laden (Häkchen entfernen und mit OK bestätigen)
* Opera: Ansicht > Bilder > Keine Bilder
* Texte, die in Klappboxen stehen, werden nicht immer ausgedruckt (abhängig von der Definition). Auf jeden Fall müssen sie ausgeklappt sein, wenn sie gedruckt werden sollen.
* Die Funktion „Als PDF herunterladen“ kann zu Darstellungsfehlern führen.
* Autorenliste, sofern möglich
Dieser Text ist sowohl unter der „Creative Commons Attribution/Share-Alike“-Lizenz 3.0 als auch GFDL lizenziert.
Eine deutschsprachige Beschreibung für Autoren und Weiternutzer findet man in den Nutzungsbedingungen der Wikimedia Foundation.