AA_complex_yenhoon_sxc_1343609.jpg

© Yenhoon, sxc.hu

Natürlich komplex

Profi-Funktionen von ImageMagick nutzen

23.12.2011
Vom Konvertieren von Negativen bis hin zum PDF fürs Fotobuch – mit ImageMagick und ein paar Zeilen Shell-Code meistern Sie jede Aufgaben ruck, zuck auf der Kommandozeile.

Einfache Anwendungen von ImageMagick, wie etwa das Verkleinern eines Bilds, gehören zu den Aufwärmübungen. Die Software leistet aber sehr viel mehr: Sie unterstützt selbst komplexeste Funktionen zum Bearbeiten von Bildern. Einmal in ImageMagick eingearbeitet, gehen die einzelnen Aktionen zügig von der Hand. Das ImageMagick-Paket besteht aus einer ganzen Reihe von Befehlen, deren mächtigster Convert ist – um eben diesen dreht sich dieser Beitrag im Wesentlichen.

Kein Unix-Befehl

Convert wie die anderen ImageMagick-Befehle folgen nicht den Unix-Konventionen. Das folgende Beispiel anhand des Cp-Befehls verdeutlicht das:

$ cp -va Quelle Ziel

Hier übergibt der Anwender dem Befehl die beiden Optionen -v und -a sowie die beiden Argumente Quelle und Ziel. Unix-typisch zieht jeder tippfaule Benutzer dabei die beiden Optionen zusammen. Optionen kommen immer vor den Argumenten, neben den Kurzoptionen, die aus einem Buchstaben bestehen, gibt es noch Langoptionen, die Sie mit zwei Minuszeichen einleiten (--verbose --archive).

Bei ImageMagick läuft das anders: Hier übergeben Sie dem jeweiligen Befehl ein Art Programm. Zum Glück ist die Programmiersprache sehr einfach aufgebaut, außer Klammern gibt es nur Einstellungen (im englischen Original "options") und Funktionen ("operators").

Selbst Dateinamen auf der Kommandozeile sind nur spezielle Funktionen: Sie laden Dateien in den ImageMagick-Speicher oder schreiben Dateien auf Platte. Optionen und Operatoren fangen jeweils mit einem Minus- oder Pluszeichen an.

Das Programm darf sehr lang sein; eine Grenze setzt nur der Linux-Kernel. Er setzt die Obergrenze für die Gesamtzahl aller Umgebungsvariablen und Argumente für die Kommandozeile auf ein Viertel der aktuellen Stack-Größe (ulimit -s). Im Normalfall verursacht das jedoch keine Probleme: Ein funktionierendes Convert-Programm mit mehr als 5000 Zeichen leistet beispielsweise beim Autor gute Dienste.

ImageMagick-Programme

Listing 1 zeigt jedoch zum Einstieg erst einmal ein einfaches Beispiel. In Zeile 3 übergibt das Skript zwei Optionen an Convert. Jede Option ändert eine Einstellungen. Prinzipiell dürfen die diese an beliebiger Stelle stehen, sie wirken immer sofort.

Listing 1

#!/bin/bash
convert -size 600x400 \
 -set filename:f '%t-web.%e' \
 "$@" \
 -resize 600x400 -auto-orient -unsharp 0x1 \
 +adjoin '%[filename:f]'

Bei der ersten Option handelt es sich um einen Hinweis auf die gewünschte Größe, der zum Beispiel in die JPG-Routinen beim Optimieren einfließt. Die zweite Option setzt ein Template für die Namen der Ausgabedateien. Die fünfte Zeile übergibt alle Argumente (in diesem Fall Dateinamen) an Convert, und das Programm lädt diese in den Speicher. Anschließend folgen in Zeile 6 drei Funktionen, die Convert in genau der angegebenen Reihenfolge auf alle geladenen Bilder anwendet (Ändern der Größe, Rotieren, Schärfen).

Die letzte Zeile benennt den Namen der Ausgabedatei. Dafür wertet das Programm die vorher gesetzte Filename-Option aus und erzeugt für alle Bilder im Speicher die entsprechende Datei. Die Option "+adjoin" verhindert dabei, dass Convert alle Bilder in einem Sammelbild zusammenfasst (TIFFs oder GIFs dürfen beispielsweise mehrere Bilder enthalten).

Der Convert-Befehl wandelt also auf einen Schlag viele Bilder um und nutzt dabei sogar mehrere Prozessoren. Viele Anwender bemühen für ein solches Szenario jedoch einfache Skripte oder sogar Perl-Programme mit einem Aufruf pro Datei. Das hat zur Folge, dass die Programm die Bilder linear Bearbeiten, was entsprechend länger dauert.

Die folgenden Abschnitte zeigen ein paar Anwendungsfälle für komplexere ImageMagick-Programme. Zu den verwendeten ImageMagick-Funktionen und Optionen helfen Beschreibungen auf der Website ([1],[2]) weiter.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

  • Bildbearbeitung mit ImageMagick
    Wer nicht 1000 Urlaubsbilder von Hand skalieren, normieren, beschneiden oder mit Wasserzeichen versehen möchte, für den führt kein Weg an der Werkzeugsammlung ImageMagick vorbei.
  • Zügiger Wechsel
    Manchmal muss man einen ganzen Schwung Bilder am Stück konvertieren. Hier macht ExactImage dem traditionellen ImageMagick Konkurrenz.
  • Grafiken schnell passend gemacht
    Sei es für die Verwendung innerhalb von Web-Seiten oder andere Zwecke: Häufig müssen Grafiken von einem Format in ein anderes konvertiert und dabei noch in Größe und Qualität verändert werden. Mit convertaus dem ImageMagick-Paket machen Sie das schnell auf der Kommandozeile.
  • Zu Befehl: Grafik-Tools aus ImageMagick
    Gimp ist das Standardprogramm, wenn es um anspruchsvolle Bildbearbeitung geht. Doch viele Aufgaben, wie Größenänderung und Formatkonvertierung, erledigen Sie auch schnell auf der Kommandozeile.
  • Bildverarbeitung mit den Skriptsprachen Perl und Python
    Mit nur wenigen Zahlen Code korrigieren Sie das Format digitaler Bilder, passen die Metadaten an oder beschriften die Fotos für den Upload in ein Online-Album.
Kommentare

Infos zur Publikation

LU 11/2014: VIDEOS BEARBEITEN

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Schnell Multi-Boot-Medien mit MultiCD erstellen
Schnell Multi-Boot-Medien mit MultiCD erstellen
Tim Schürmann, 24.06.2014 12:40, 0 Kommentare

Wer mehrere nützliche Live-Systeme auf eine DVD brennen möchte, kommt mit den Startmedienerstellern der Distributionen nicht besonders weit: Diese ...

Aktuelle Fragen

Artikelsuche
Erwin Ruitenberg, 09.10.2014 07:51, 1 Antworten
Ich habe seit einige Jahre ein Dugisub LinuxUser. Dann weiß ich das irgendwann ein bestimmtes Art...
Windows 8 startet nur mit externer Festplatte
Anne La, 10.09.2014 17:25, 4 Antworten
Hallo Leute, also, ich bin auf folgendes Problem gestoßen: Ich habe Ubuntu 14.04 auf meiner...
Videoüberwachung mit Zoneminder
Heinz Becker, 10.08.2014 17:57, 0 Antworten
Hallo, ich habe den ZONEMINDER erfolgreich installiert. Das Bild erscheint jedoch nicht,...
internes Wlan und USB-Wlan-Srick
Gerhard Blobner, 04.08.2014 15:20, 2 Antworten
Hallo Linux-Forum: ich bin ein neuer Linux-User (ca. 25 Jahre Windows) und bin von WIN 8 auf Mint...
Server antwortet mit falschem Namen
oin notna, 21.07.2014 19:13, 1 Antworten
Hallo liebe Community, Ich habe mit Apache einen Server aufgesetzt. Soweit, so gut. Im Heimnet...