Open Source im professionellen Einsatz
Linux-Magazin 09/2003

Gimp mit Perl automatisieren

Foto-Labor

Gimp, das GNU Image Manipulation Program, verbessert und manipuliert digitale Bilder mit anspruchsvollen Filterfunktionen. Statt immer wieder die gleichen Manöver mit der Maus auszuführen, lassen sich die Vorgänge mit Gimps Perl-Schnittstelle sogar automatisieren.

660

Kürzlich stolperte ich über die Webseite des Fotofachmanns Eric Jeschke, der auf[2] allerlei Tricks beschreibt, um digitale Fotos mit Gimp[1] zu verbessern. Das auf Linux frei erhältliche Fotobearbeitungsprogramm entfernt die roten Blitzaugen, reduziert eine zu starke Tiefenschärfe und Bildregionen werden nachbelichtet oder abgewedelt, wie man im Fotolaborjargon sagt, und was es der Gimmicks mehr gibt.

Perl für Gimp-Füchse

In[3] findet sich eine zwar kurze, aber einigermaßen gelungene Einführung in Gimps Perl-Schnittstelle. Marc Lehmann hat diese Erweiterung als Alternative zu Gimps Script-Fu geschrieben, sie ist ein Bestandteil der Source-Distribution. Damit kann ein Perl-Skript neue Menüs in Gimp einfügen, sonst per Maus ausgelöste Aktionen automatisieren und ungehemmt Bilddaten manipulieren.

Eines der Rezepte auf[2] erklärt, wie man ein Bild mit wenigen Handgriffen dramatischer oder traumartiger aussehen lässt. Die einzelnen Schritte sind:

  • Das Bild in Gimp laden und den »Layers«-Dialog
    öffnen.
  • Die erste Ebene in eine zweite kopieren (Duplizieren-Icon am
    unteren Rand des Dialogs) und den Modus »Overlay«
    wählen.
  • Die Farben mittels »Image | Colors | Levels« leicht
    aufhellen.
  • Die durch den Overlay entstandenen Ecken per »Filters |
    Blur | Gaussian Blur«-Unschärfe mit dem Radius 20
    abrunden.

Der Effekt ist erstaunlich, Abbildung 1 zeigt das Original und die Gimp-Fälschung[4]. Wendet man das Verfahren jedoch ein paarmal von Hand auf verschiedene Fotos an, ermüden schnell die Finger und eine innere Stimme ruft lautstark nach einem Skript.

Das im Folgenden vorgestellte Skript »dreamify« funktioniert sowohl als Gimp-Plugin, das Gimp mit einem neuen Menüpunkt anreichert und seine Spielchen mit dem gerade geladenen Bild treibt, als auch von der Kommandozeile aus: »dreamify test.jpg« lädt das Bild im JPEG-Format, führt die eben beschriebenen Manipulationen aus, lässt anschließend die beiden Ebenen durch »Layers | Flatten Image« kollabieren und schreibt das Ergebnis im PNG-Format nach »test.png«.

In Perl geschriebene Gimp-Plugins binden zwei Module ein:

use Gimp qw(:auto);
use Gimp::Fu;


Das erste Modul-Tag »:auto« ist optional, es importiert alle verfügbaren Gimp-Bibliotheksfunktionen praktischerweise in den Namensraum des Skripts und definiert nützliche Konstanten.

Die Plugin-Skripte müssen die »register()«-Funktion aufrufen, um das Plugin in Gimp zu registrieren. Die Funktion legt fest, unter welchem Menüpunkt es hängt, und definiert, was passiert, wenn der Anwender darauf drückt, und gibt zudem eine kurze Beschreibung für die Online-Hilfe. Das Plugin-Skript sollte am Ende mit »exit main;« wieder die Kontrolle an Gimp zurückgeben, das es während des Startvorgangs ausführt und sich die vorgenommenen Einstellungen zur weiteren Verwendung merkt.

Abbildung 1: Original und Fälschung: Links eine triste Straßenszene in San Franciscos Stadtviertel Soma (South of Market). Rechts die gefilterte Fassung, die dem Bild eine dramatischere Note verleihen soll. Sie besteht aus zwei Ebenen, die per Overlay-Technik kombiniert sind.

Menü oder Kommando

Wenn Gimp das Plugin beim Hochfahren aufruft, gibt es ihm Parameter der Form

-gimp 9 8 -query 0


mit. Das nutzt Zeile 19 in »dreamify« (Listing 1) aus um festzustellen, ob der Aufruf von Gimp oder von der Kommandozeile kam. Im ersten Fall beginnt das Plugin damit, das aktuelle Bild zu bearbeiten. Von der Kommandozeile aus aufgerufen lädt das Skript hingegen erst die als Argument angegebene Datei im JPEG-Format und schreibt das Ergebnis nach getaner Arbeit als PNG-Bild auf die Festplatte.

Damit Gimp auf dem aktuellen Bild operiert, wenn der Benutzer den »Dreamify«-Eintrag im Menü auswählt, legt die Zeile 21 den String »"<Image>/Perl-Fu/Dreamify"« in der Variablen » ab. Diese Variable teilt später der »register«-Methode mit, wo sie den Eintrag aufhängen soll.

Im Falle eines Kommandozeilen-Aufrufs bleibt » auf dem in Zeile 16 gesetzten Wert »"<Toolbox>/Xtns/Mike/ Dreamify"«, denn obwohl Gimp in diesem Fall gar kein Menü anlegen muss, besteht es auf einem gültigen Eintrag. Der »<Image>«-Eintrag von oben würde hier nur eine wüste Fehlermeldung verursachen. Zeile 24 speichert den Namen der Bilddatei in ». Fehlt der Name, dann verzweigt Zeile 25 zur POD-Dokumentation und bricht das Skript ab.

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Alter geht vor Schönheit

    Das Fotomanipulationsprogramm Gimp hilft nicht nur dabei, Fotos optisch aufzubrezeln, es beherrscht auch den umgekehrten Fall: Aus brandneuen Digitalbildern macht es nostalgisch angehauchte Fotos mit dem typischen Gelbstich.

  • Farbenspiel

    Oft benötigen ganze Serien digitaler Bilder dieselben Korrekturen, was den Fotografen zu immer gleichen Schritten in Gimp zwingt. Viel bequemer kommt zum Ziel, wer die Retusche automatisiert.

  • Rattenscharf

    Was macht eigentlich ein digitales Bild scharf? Eine verständliche Erklärung der Prinzipien und ein Perl-Plugin für Gimp helfen dem digitalen Hobbyfotografen dabei, Schnappschüsse professionell aufzupolieren.

  • Gimp 2.7.3 - Nächster Schritt zur 2.8

    Mit der Version 2.7.3 nähert sich das GNU Image Manipulation Programm (Gimp) der seit längerer zeit anvisierten Version 2.8.

  • Kartentrick

    Wer es zu mühselig findet, die ins Bild gehaltenen Referenzkarten für die Farbkorrektur in Gimp - wie im vorigen Snapshot beschrieben - manuell auszuwählen, der freut sich jetzt sicherlich über ein Skript, das diesen Vorgang automatisiert.

comments powered by Disqus

Ausgabe 01/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.