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 12/2014: ANONYM & SICHER

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

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 0 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Nach Ubdates alles weg ...
Maria Hänel, 15.11.2014 17:23, 4 Antworten
Ich brauche dringen eure Hilfe . Ich habe am wochenende ein paar Ubdates durch mein Notebook von...
Brother Drucker MFC-7420
helmut berger, 11.11.2014 12:40, 1 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu 14.04-Nutzer...
Treiber für Drucker brother MFC-7420
helmut berger, 10.11.2014 16:05, 2 Antworten
Hallo, ich habe einen Drucker, brother MFC-7420. Bin erst seit einigen Tagen ubuntu12.14-Nutzer u...
Can't find X includes.
Roland Welcker, 05.11.2014 14:39, 1 Antworten
Diese Meldung erhalte ich beim Versuch, kdar zu installieren. OpenSuse 12.3. Gruß an alle Linuxf...
DVDs über einen geeigneten DLNA-Server schauen
GoaSkin , 03.11.2014 17:19, 0 Antworten
Mein DVD-Player wird fast nie genutzt. Darum möchte ich ihn eigentlich gerne abbauen. Dennoch wür...