Warning: filemtime(): stat failed for https://blog.gestreift.net/wp-content/themes/colibri-gestreift/assets/style.css in /www/htdocs/w01b973b/blog.gestreift.net/wp-content/themes/colibri-gestreift/functions.php on line 9
Gimp-Makros mit Script-Fu nutzen - blog.gestreift.net

Gimp-Makros mit Script-Fu nutzen

13. März 2022, Tags:

Ich bearbeite meine Fotos in Gimp. Hier geht so gut wie alles – nur manchmal sind es sehr viele einzelne Schritte. Um mir hier etwas Arbeit zu sparen, nutze ich Makros. Diese könnten in Python geschrieben sein. Weil ich es einfacher für mich finde, zeige ich hier wie man Gimp-Makros mit Script-Fu nutzen kann. Und ja: Die deutsche Übersetzung lautet „Skript-Fu“. Mit ‚K‘. Ich habe es mir aber mal mit ‚C‘ gemerkt. Darum bleibe ich dabei 🙃.

Gimp-Makros mit Script-Fu nutzen

Makros sind kleine Programme, die in einer relativ einfachen Sprache geschrieben sind. Ich nutze sie, um mehrere Befehle die ich immer wieder aufrufe, einfach automatisiert ablaufen zu lassen. So ein Makro kann man auf diversen Seiten im Internet herunterladen. Es sind kleine Textdateien, die auf .SCM enden. Diese Dateien werden auf den eigenen PC heruntergeladen und müssen dann an den richtigen Ort kopiert werden, damit Gimp sie nutzen kann. Es wäre zu einfach, wenn dieser Ort immer der gleiche wäre. Ich habe in meinem Gimp unter Bearbeiten -> Einstellungen im Baum unter Ordner den Zweig Skripte gefunden. Dort stehen zwei Orte (siehe Bild 1). Der eine ist global für das System und für mich nicht beschreibbar. Der andere liegt in meinem Home-Verzeichnis. Ich kopiere meine Macros also nach ~/.config/GIMP/2.10/scripts.

Sobald ein Makro (Textdatei mit der Endung .SCM) dort gelandet ist, kann ich per Filter -> Script-Fu -> Skripte auffrischen dieses Makro aktivieren. Es fügt jetzt einen neuen Menüpunkt hinzu. Früher war das oft ein direktes Hauptmenü namens Script-Fu, jetzt ist es im Menü Filter ein Untermenü, welches oberhalb des Script-Fu-Menüs steht. Den Namen kann jede/r Makro-Entwickler*inn selbst vergeben. Aber man findet es schon 😉. Sobald man auf den Menü-Eintrag klickt wird das in der SCM-Datei liegende Script abgearbeitet und man kann die Gimp-Makros mit Script-Fu nutzen.

Was genau macht mein Makro?

Das ist eine gute Frage. Und darauf gibt es leider keine allgemein gültige Antwort. Prinzipiell lohnt sich ein Blick in die SCM-Datei, um zu sehen was alles ausgeführt wird. Will man sich damit aber nicht beschäftigen (ist ja auch nicht ganz so einfach), dann muss man auf die Dokumentation der Entwickler*inn bauen. Die Dokumentation zu meinen Makros habe ich so gebaut, dass sie unter Filter -> Script-Fu -> Konsole -> Durchsuchen zu finden sind, wenn nach ‚gestreift‘ gesucht wird (siehe Bild 2). Hier versuche ich kurz zu erklären, wie man das Makro nutzt.

Ein eigenes Makro bauen

Ein oft gelesener Wunsch ist, dass man einfach einen ‚Aufzeichnen‘-Button drückt und alle Funktionen daraufhin in ein Makro aufgezeichnet werden. Aus diversen Gründen, die man in diversen Foren nachlesen kann, geht das so nicht. Also: Man muss schon ein/e fortgeschrittene/r Anwender*inn sein und sein Makro mit der Tastatur aus einem leeren Editor heraus meißeln 😄.

Ein Semikolon (;) leitet einen Kommentar ein. Alles was dahinter steht wird ignoriert. Gruppen von Befehlen stehen in Klammern. Vor allem dabei kann man sich leicht verhaspeln. Editoren, die das Hervorheben von Syntax beherrschen, zählen die Klammern meist mit und zeigen somit auf, wenn die Anzahl nicht stimmt.

Der oben stehende Code definiert die Funktion gestreift-script-fu-test mit den beiden Parametern theImage (das wird der Verweis auf das Bild) und baseLayer (das wird die aktive Ebene). Beides ‚wird‘ erst, weil die Funktion bisher einfach nur da ist und niemand sie kennt. Das kommt gleich noch. Die beiden gimp-image-undo-group-Befehle umschließen eine Gruppe an Befehlen, die später mit einem einzigen Klick auf „Rückgängig“ (oder Strg+Z) rückgängig gemacht werden können. Zwischen diesen Befehlen wird dann das eigentliche Makro stehen.

Tipp: Wenn man die untergeordneten Zeilen mit einem <Tabulator>-Schritt einrückt, dann wird der Quellcode lesbarer und man vergisst weniger Klammern.

Dieser Code-Teil macht die definierte Funktion nun für Script-Fu bekannt. Direkt hinter script-fu-register kommt der Name der Funktion. Die folgende Zeile beginnt mit einem Unterstrich (_) und enthält den Text im Untermenü – siehe folgender Code-Abschnitt. Dann folgen viel Zeilen, die dann im Prozeduren-Browser (Bild 2) zu sehen sein werden. Die letzten beiden Zeilen definieren die Parameter noch einmal genauer: „Image“ ist das Bild und „Drawable“ ist die aktive Ebene.

Und dieser letzte Teil legt nun den Menü-Eintrag an. Die oben definierte Funktion gestreift-script-fu-test wird also im Menü unter „Filters“ -> „gestreift.net“ -> „Just a test“ zu finden sein.

Das war’s schon. Die drei Code-Abschnitte müssen untereinander in einer SCM-Datei im Skript-Verzeichnis stehen. Das ist die Grundstruktur eines Makros. Jetzt fehlt nur noch der Inhalt 🙃.

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.