Foto-Batch-Processing

Aus LinuxUser 05/2021

Foto-Batch-Processing

© Sebastien Decoret / 123RF.com

Automatisiert

Wer seine Urlaubsbilder für ein Fotobuch aufarbeitet, will das nach Möglichkeit automatisieren. Dabei helfen Gimp und Konsorten.

Alle Jahre wieder geistert durch einschlägige Foren und Mailing-Listen die Frage, wie man mithilfe von Gimp einige Hundert Bilder in einem Rutsch verkleinern, rotieren, schärfen oder mit einem Rahmen versehen kann. Die typische Antwort verweist dann in der Regel auf die Batch-Processing-Fähigkeiten von Imagemagick, oft gefolgt von einer entsprechenden Befehlszeile.

Mit seinen unzähligen Funktionen erscheint Gimp auf den ersten Blick weniger ideal zum Bearbeiten großer Mengen von Bildern. Das eigentliche Entwicklungsziel der Software besteht ja darin, einzelne Bilder möglichst exakt zu bearbeiten. Aber selbst hier gibt es einige Möglichkeiten, die wir Ihnen im Folgenden vorstellen.

Das Problem

Irrigerweise nehmen viele Anwender an, dass das Bearbeiten vieler Bilder sich schlicht auf das automatisierte Abarbeiten einer Art Rezept aus Bildbearbeitungsfunktionen für viele Einzelbilder beschränkt. Ganz so einfach ist es jedoch oft nicht.

Ein Beispiel verdeutlicht das: Stellen Sie sich vor, Sie wollen aus 300 Bildern eine Slideshow erzeugen. Dazu wandeln Sie die Bilder aus dem ursprünglichen 3:4-Format der Kamera ins 16:9-Full-HD-Format mit 1920 x 1080 Pixeln um. Damit die Bilder dabei nicht verzerrt erscheinen, müssen sie zwangsläufig beschnitten werden. Die Wahl des verwendeten Ausschnitts aber lässt sich in der Praxis nur schwer automatisieren. Sieht man die Bilder dazu nicht einzeln durch und wählt die Ausschnitte manuell, köpft der Automatismus schnell die dargestellten Personen oder begeht ähnliche Schnitzer.

Tatsächlich gibt es aber auch Fälle, bei denen es keine Probleme bereitet, ein zuvor festgelegtes Rezept auf viele Bilder anzuwenden. Dafür gibt es inzwischen zwei Gimp-Plugins, die das stapelweise Bearbeiten erlauben. David’s Batch Prozessor bietet eine einfache Möglichkeit, aus einer Reihe von vorgegebenen Funktionen ein Rezept zu entwickeln und es dann auf eine Auswahl an Bildern anzuwenden. Bimp (Batch Image Manipulation Plugin for Gimp) kann im Prinzip auf alle Gimp-Funktionen zugreifen und sie automatisiert auf viele Bilder anwenden.

David’s Batch Prozessor

Schon seit vielen Jahren existiert mit David’s Batch Prozessor eine einfache Stapelbearbeitung, die es erlaubt, eine Reihe oft benötigter Funktionen automatisch aus Gimp heraus anzuwenden [1]. Heute gilt das Gimp-Plugin allerdings als veraltet: Viele der Funktionen, auf die es zurückgreift, haben sich mehrfach geändert. Dennoch funktionieren viele immer noch.

David’s Batch Prozessor installieren

In den meisten Distro-Repositories fehlt David’s Batch Prozessor. Immerhin findet es sich im Debian-Paket gimp-plugin-registry, steht also auch für dessen Derivate inklusive Ubuntu bereit. Für andere Distributionen übersetzen Sie es manuell aus den Quelltexten [12] (make) und installieren es dann mit dem Aufruf gimptool-2.0 --bin-install dbp.

Wahrscheinlich ließen sich die Probleme recht einfach beheben, wenn sich ein C++-Entwickler einige Stunden an den Code setzen würde. Derzeit lässt sich das Plugin hauptsächlich als Blaupause für eigene Entwicklungen und als Übungsobjekt betrachten, auch wenn es sich noch für einfache Aufgaben eignet. Sie finden es nach dem Einrichten als Batch Process… direkt im unteren Teil des Filtermenüs.

Die Verwendung des Batch-Prozessors gestaltet sich einfach. Nach dem Start zeigt das Plugin ein Fenster mit vielen Reitern (Abbildung 1). Zunächst geben Sie die zu bearbeitenden Bilder an; die folgenden Reiter enthalten dann jeweils bestimmte Funktionen einer Gruppe, die Sie separat aktivieren können.

Abbildung 1: Die Auswahl von Bildern in David's Batch Prozessor. Gimp selbst lädt die entsprechenden Dateien erst später.

Abbildung 1: Die Auswahl von Bildern in David’s Batch Prozessor. Gimp selbst lädt die entsprechenden Dateien erst später.

In den Reitern Rename und Output nehmen Sie die entscheidenden Einstellungen für die Ausgabebilder vor, wie das Ausgabeverzeichnis, das Bildformat und einige andere Angaben. Viele der Bildbearbeitungsfunktionen arbeiten auch mit dem veralteten Plugin noch korrekt, erzeugen allerdings Fehlermeldungen wie in Abbildung 2.

Abbildung 2: Anschließend wählen Sie die Aktionen. Ab und an spürt man das Alter des Programms in Form von Fehlermeldungen.

Abbildung 2: Anschließend wählen Sie die Aktionen. Ab und an spürt man das Alter des Programms in Form von Fehlermeldungen.

BIMP

Während die Entwickler an David’s Batch Prozessor derzeit nicht aktiv arbeiten, erhält Bimp [2] regelmäßige Updates. Die derzeit aktuelle Version 2.5 ist an die Schnittstellen von Gimp 2.10 angepasst und findet sich als gimp-plugin-bimp in den Repositories mancher Distributionen. Für Debian, Ubuntu und deren Derivate müssen Sie die Software allerdings von Hand bauen (Listing 1[3].

Listing 1

Bimp aus den Quellen bauen

$ sudo apt install libgimp2.0-dev libgegl-dev
$ wget https://github.com/alessandrofrancesconi/gimp-plugin-bimp/archive/refs/tags/v2.5.tar.gz
$ tar xzf v2.5.tar.gz
$ cd gimp-plugin-bimp-2.5
$ make && make install

Nach dem Einrichten starten Sie das Werkzeug über Datei | Batch Image Manipulation… aus Gimp heraus. Das Plugin orientiert sich vom Aufbau und der Grundkonstruktion an David’s Batch Prozessor, verfügt aber über deutlich umfangreichere Funktionen und baut auf eine modernere Oberfläche auf (Abbildung 3). Auch deutet das Aussehen der Plugin-Dialogs schon an, dass es hier um mehr geht.

Abbildung 3: Bimp ist sehr einfach und übersichtlich, dabei jedoch auch unglaublich leistungsfähig.

Abbildung 3: Bimp ist sehr einfach und übersichtlich, dabei jedoch auch unglaublich leistungsfähig.

Wie bei David’s Batch Prozessor definieren Sie im ersten Dialog zunächst die zu bearbeitenden Bilder, ohne dass Gimp diese gleich lädt. Unter Speichern in legen Sie das Ausgabeverzeichnis fest. Ein Mausklick auf Hinzufügen von Bildern öffnet ein einfaches Menü mit weiteren Funktionen. Dieses Verhalten – ein implizites Menü – zeigen auch die anderen Buttons.

Die Standardfunktionen finden sich im Menü des Hinzufügen-Buttons (Abbildung 4). Dort geben Sie unter Dateiformat und Kompression ändern auch das Ausgabeformat vor. Die zusätzliche Funktion Nach einem Schema umbenennen erlaubt es, mehrere nummerierte Versionen eines Bilds zu erzeugen.

Abbildung 4: Die Standard-Batch-Funktionen finden Sie bei Bimp unter <span class="ui-element">Hinzuf&uuml;gen</span>. F&uuml;r weitergehende Aufgaben steht dort die Funktion <span class="ui-element">Andere GIMP-Anwendung...</span> bereit.

Abbildung 4: Die Standard-Batch-Funktionen finden Sie bei Bimp unter Hinzufügen. Für weitergehende Aufgaben steht dort die Funktion Andere GIMP-Anwendung… bereit.

Über die Funktion Andere GIMP-Anwendung… erhalten Sie Zugriff auf die internen Gimp-Funktionen, wie sie auch über das Menü oder in anderen Plugins zur Verfügung stehen. Die Benennung dieser Funktionen folgt immer dem Schema TypFunktion, beispielsweise plug-in-unsharp-mask oder script-fu-drop-shadow oder gimp-color-balance. Dabei steht plug-in- für in Plugins kodierte Funktionen, script-fu- für in Script-Fu-Erweiterungen bereitgestellte Funktionen und gimp- für die im Gimp-Kern vorhandenen Routinen.

Die Parameter für diese Funktionen geben Sie im entsprechenden Bimp-Dialog ein, wobei das Plugin zusätzliche Hilfestellungen wie den erlaubten Wertebereich und die Bedeutung der Parameter anzeigt (Abbildung 5). Um eine Funktion auszuwählen, geben Sie einen Teil der Namenskomponente an, etwa sharp, blur oder drop. Über eine inkrementelle Suche grenzt Gimp die Funktionen entsprechend ein.

Abbildung 5: Die im Rahmen von Bimp aufgerufenen Gimp-Funktionen lassen sich &uuml;ber ihre Parameter genau konfigurieren.

Abbildung 5: Die im Rahmen von Bimp aufgerufenen Gimp-Funktionen lassen sich über ihre Parameter genau konfigurieren.

Die beiden Beispiele in Abbildung 5 zeigen, wie das erfolgt. Oft genügen die voreingestellten Größen der Dialogfenster nicht, um alle Parameter anzuzeigen, wie bei plug-in-mblur-inward. Sie sollten aber unbedingt alle Parameter berücksichtigen, um gute Ergebnisse zu erzielen.

Oft wird bei Gimp 2.10 auf GEGL-Funktionen verwiesen [4]. Die Parameter für die einzelnen Funktionen bestimmen Sie am besten vorab interaktiv in Gimps Bildbearbeitungsfenster. Notieren Sie die dabei verwendeten Parameter, und bedenken Sie auch, dass viele Parameter unmittelbar von der Bildgröße abhängen. Welche internen Gimp-Funktionen sich hinter einem Menüpunkt verbergen, lesen Sie in der Gimp-Konfigurationsdatei menurc nach (unter ~/.config/GIMP/2.10/ im Home-Verzeichnis).

Einmal definierte Rezepte kann Bimp als spezielle Bimp-Skripte – einfach zu editierende Textdateien – mit der Funktion Aufgabensatz speichern… ablegen und später via Aufgabensatz laden… erneut einlesen und ausführen.

Alternativen

Neben den beiden vorgestellten Plugins gibt es eine Reihe von Alternativen, um viele Bilder in einem Rutsch zu bearbeiten. Welche sich im konkreten Fall am besten eignet, hängt von der vorliegenden Aufgabenstellung ab. Die Gimp-Entwickler empfehlen etwa, sich mit der recht einfachen Programmiersprache ScriptFu vertraut zu machen und dann die gewünschten Funktionen als kleines Skript aufzurufen [5].

Das dort beschriebene Verfahren ist sicherlich eine gute Möglichkeit, die weitreichende Freiheiten garantiert, wenn auch zwei Punkte dagegen sprechen: Zum einen bedürfen diese Skripte gelegentlicher Überarbeitung, da sich die Gimp-API zwischen den Versionen immer wieder verändert. Der zweite Nachteil ist die Sprache selbst: Sie wirkt nicht unbedingt intuitiv und verliert zunehmend an Bedeutung. Inzwischen entstehen Plugins eher in Python und anderen höheren Programmiersprachen. Es gibt aber auch einen Vorteil: Wer sich mit ScriptFu auskennt, passt Vorlagen blitzschnell an die eigenen Anforderungen an.

In der Praxis hat sich ein viel schnellerer Ansatz bewährt. Normalerweise muss man beim Bearbeiten vieler Fotos einerseits nicht allzu viele Funktionen auf die Bilder anwenden. Andererseits unterscheiden sich die Bilder oft so stark, dass man um eine visuelle Kontrolle ohnehin nicht herumkommt. In solchen Fällen empfiehlt sich die Verwendung von dynamischen Tastenbindungen.

Zunächst benötigen Sie für jede anfallende Funktion eine freie Taste, die Gimp nicht mit Funktionen belegt. Sinnvollerweise sollten alle genutzten Tasten auf der Tastatur nahe beieinanderliegen, etwa auf dem Ziffernblock. In den Einstellungen aktivieren Sie im Reiter Oberfläche die dynamischen Tastenbindungen (Abbildung 6). Dort ordnen Sie jeweils einer der freien Tasten eine der benötigten Funktionen zu und wenden diese dann der Reihe nach auf die geladenen Bilder an. Nach jeder Aktion sehen Sie den Effekt der Korrektur und können ihn gegebenenfalls noch einmal verändern.

Abbildung 6: Die dynamische Tastenbindungen in den Einstellungen von Gimp erlauben das Zuweisen von Funktionen an Tasten.

Abbildung 6: Die dynamische Tastenbindungen in den Einstellungen von Gimp erlauben das Zuweisen von Funktionen an Tasten.

Andere Batch-Prozessoren

In den Repositories vieler Distributionen finden sich eine ganze Reihe von ohnehin für die Stapelbearbeitung von Bildern ausgelegten Programmen, die mehr oder weniger viele Funktionen unterstützen.

Als erster Kandidat kommt Digikam ins Spiel. Das sehr umfangreiche Programm empfiehlt sich hauptsächlich zum Verwalten von Bildern und Videos, verfügt aber auch über eine Bildbearbeitung. Die kann zwar in Umfang und Qualität Gimp nicht das Wasser reichen, eignet sich aber gut für einfache Aufgaben wie das Skalieren, Drehen oder Rahmen. Dabei kommt Digikam selbst mit Unmengen von Bildern gut zurecht.

Insgesamt stehen etwa 30 Werkzeuge bereit, wobei es Digikam auch ermöglicht, externe Befehle oder Shell-Skripts auszuführen. Um Digikam für die Stapelbearbeitung zu verwenden, nehmen Sie zunächst das Verzeichnis mit den zu bearbeitenden Bildern in die Datenbank auf. Dazu binden Sie es entweder direkt ein (Abbildung 7) oder legen einen Ordner in einem bereits in der Datenbank vorhandenen Verzeichnis an. Das klappt über Neu im Kontextmenü.

Abbildung 7: Neue (Arbeits-)Verzeichnisse integrieren Sie in Digikam innerhalb der <span class="ui-element">Einstellungen</span> des Programms.

Abbildung 7: Neue (Arbeits-)Verzeichnisse integrieren Sie in Digikam innerhalb der Einstellungen des Programms.

In dem Arbeitsverzeichnis wählen Sie dann alle gewünschten Bilder aus ([Strg]+[A] für alle) und überführen sie mit [Strg]+[W] in die Warteschlange. Digikam öffnet nun den Dialog Stapelverarbeitung (Abbildung 8). Eine Liste der ausgewählten Bilder findet sich unter Warteschlangen wieder. Jede Warteschlange darf im Prinzip beliebige Werkzeuge aus Digikams Bildbearbeitung enthalten, und das Programm kann mehrere Warteschlangen gleichzeitig bearbeiten. Das erfordert allerdings einige Übung, sonst verliert man schnell die Übersicht.

Abbildung 8: Die Stapelverarbeitung von Digikam ist relativ komplex und bietet viele Werkzeuge und Einstellungen.

Abbildung 8: Die Stapelverarbeitung von Digikam ist relativ komplex und bietet viele Werkzeuge und Einstellungen.

Mit einem Doppelklick auf eine Zeile unter Basis-Werkzeuge – unten rechts in der Kontrollleiste – übertragen Sie das ausgewählte Werkzeug in die Warteschlange. Die Reihenfolge der Tools spielt bei vielen Funktionen eine entscheidende Rolle: So sollten Sie zuerst entrauschen und erst gegen Ende der Bearbeitung schärfen. Einen Rahmen fügen Sie als allerletzten Bearbeitungsschritt hinzu. Falls erforderlich, sortieren Sie die Reihenfolge der Werkzeuge in der Warteschlange unter Zugewiesene Werkzeuge per Drag & Drop.

Fast jedes Werkzeug verfügt über spezielle Einstellungen, die Sie vor dem Ausführen der Warteschlange im Bereich Werkzeug-Einstellungen für alle definieren sollten. Auch bei Digikam testen Sie am besten vorab an einigen ausgewählten Bildern, mit welchen Werkzeugen und welchen Parametern Sie die gewünschten Effekte erzielen (Abbildung 9).

Abbildung 9: In vielen F&auml;llen erzeugt die Bildbearbeitung von Digikam auch im Automatikmodus ansehnliche Ergebnisse.

Abbildung 9: In vielen Fällen erzeugt die Bildbearbeitung von Digikam auch im Automatikmodus ansehnliche Ergebnisse.

Digikam und GMIC

Seit einiger Zeit unterstützt Digikam die Qt-Version von GMIC direkt. Um es in der eingebauten Bildbearbeitung von Digikam nutzen zu können, müssen Sie es zunächst installieren (es liegt oft als separates Paket vor) und in Digikam aktivieren (Abbildung 10). Anschließend finden Sie GMIC unter Verbessern. Die Qt-Version von GMIC verfügt über eine gute Vorschau und bietet alle derzeit mehr als 550 bei GMIC verfügbaren Filter an.

Abbildung 10: Mithilfe eines Plugins lassen sich die GMIC-Filter auch direkt aus der Bildbearbeitung von Digikam heraus aufrufen.

Abbildung 10: Mithilfe eines Plugins lassen sich die GMIC-Filter auch direkt aus der Bildbearbeitung von Digikam heraus aufrufen.

Eine andere Gruppe von Programmen, die RAW-Konverter, sind ebenfalls Spezialisten für Stapelbearbeitung. Insbesondere Darktable unterstützt zum einen zahlreiche Bitmap-Eingabeformate und verfügt zum anderen über eine ganze Reihe ausgezeichneter Werkzeuge, die auch ungewöhnliche Effekte ermöglichen (Abbildung 11). Bei Rawtherapee sieht es mit den Effekten nicht ganz so gut aus, aber grundlegende Funktionen für einige Bitmap-Eingabeformate stehen auch dort zur Verfügung.

Abbildung 11: Effekte wie das Verfl&uuml;ssigen sucht man oft vergeblich. Darktable bietet das auch f&uuml;r Bitmap-Bilder an.

Abbildung 11: Effekte wie das Verflüssigen sucht man oft vergeblich. Darktable bietet das auch für Bitmap-Bilder an.

Shell-Skripte einsetzen

Geht es um wirklich komplexe Funktionen, die Sie in Batch-Jobs auf viele Bilder anwenden wollen, sind Shell-Skripte auf Basis spezieller Bildbearbeitungen eine gute Wahl. Imagemagick, sein Cousin Graphicsmagick sowie GMIC bieten viele Funktionen, die in der Reihenfolge zum Einsatz kommen, die Sie im Skript angeben. Die Dokumentation [6] zu Imagemagick ufert aufgrund der vielen Möglichkeiten etwas aus, man benötigt sie aber normalerweise kaum. Insbesondere die ältere Einführung [7] in Imagemagick erklärt die Grundlagen.

Üblicherweise empfiehlt es sich, ein Shell-Skript mit den benötigten Funktionen möglichst einfach aufzubauen, bis man über die entsprechenden Erfahrungen verfügt. Das bedeutet beispielsweise, dass ein Skript vielleicht nicht gleich alle Aktionen in einem Schritt ausführt und auch nur eine Datei zur Zeit bearbeitet. Normalerweise werden Sie bei Imagemagick vor allem den Befehl convert verwenden, der die Originaldatei unverändert belässt und den Optionen entsprechend eine neue Ausgabedatei erzeugt. Ein einfaches Skript sieht dann beispielsweise so aus wie in Listing 2.

Listing 2

skalieren.sh

#!/bin/bash
function skalierenundrahmen () {
  convert "$0" -verbose -bordercolor white -border 5 \( +clone -background black -shadow 80x3+2+2 \) +swap -background white -layers merge +repage -resize 960x\> bearbeitet/"$0"
}
mkdir -p bearbeitet
export -f skalierenundrahmen
find . -maxdepth 1 -name '*.jpg' -exec bash -c 'skalierenundrahmen "$0"' {} \;

Graphicsmagick [8] schickt sich seit einiger Zeit an, Imagemagick abzulösen. Die im Rahmen des seit 2002 abgespaltenen Imagemagick-Forks entwickelten Programme sind kleiner und arbeiten schneller als die Originale. Zudem legen die Graphicsmagick-Entwickler mehr Wert auf die Programmsicherheit als ihre Imagemagick-Kollegen. Viele Optionen, die Imagemagick anbietet, stehen auch bei Graphicsmagick bereit.

Als weitere Alternative auf der Befehlszeile positioniert sich GMIC [9]. Das Programm gibt es nicht nur als Plugin für Gimp und Digikam, sondern auch als Befehlszeilenversion, die sich über Aufrufoptionen und eine eigene Programmiersprache steuern lässt. Derzeit implementiert GMIC mehr als 550 einzelne Bildbearbeitungsfunktionen. Die Qt-Version von GMIC, gmic_qt, bietet sogar eine Vorschau, um die Parameter der Filter optimal einzustellen. Hinweise zum Einsatz von GMIC auf der Befehlszeile [10] finden Sie ebenso online wie ein Kochbuch für angehende GMIC-Spezialisten [11].

Fazit

Die Stapelbearbeitung von Bildern ist viel anspruchsvoller, als sie auf den ersten Blick erscheint. Zudem gibt es in der Praxis viele Wege, die zu einem guten Ergebnis führen. Eine optimale Lösung für alle Bilder und Anwendungsfälle existiert dabei nicht.

Bei ziemlich gleichartigen Bildern und einfachen Aufgaben erzielen Sie mit Digikam und RAW-Konvertern wie Darktable relativ schnell gute Ergebnisse. Für recht unterschiedliche und vielleicht obendrein nicht optimal ausbelichtete Fotos ist vermutlich Gimp die beste Lösung. Meistens bewährt sich in der Praxis die Methode mit den dynamischen Tastenbindungen, aber es lohnt sich durchaus, auch Bimp eine Chance zu geben. Wer das Schreiben von Skripten nicht scheut, dem stehen mit Imagemagick, Graphicsmagick und GMIC noch viel leistungsstärkere Werkzeuge zur Verfügung. (cla/jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 05/2021 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben