AA_PO-22368-123RF-altomedia.jpg

© Altomedia, 123RF

Bilder im Griff

Bildbearbeitung mit ImageMagick

19.07.2012
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.

ImageMagick zählt zu den absoluten Dauerbrennern der Open-Source-Szene: Der Grafik-Werkzeugkasten für die Kommandozeile wird sei 1999 kontinuierlich weiter entwickelt und trägt aktuell die Versionsnummer 6.7.7. An der grundsätzlichen Handhabung hat sich über die Jahre kaum etwas geändert, allerdings kommen von Version zu Version neu unterstützte Bildformate, Funktionen oder Programmierschnittstellen hinzu.

Es besteht nur selten ein Anlass, die aktuellste Version von der Projektseite [1] herunter zu laden und aus den Quellen [2] zu übersetzen, weil alle wichtigen Distributionen das Paket bereits mitbringen, Ubuntu 12.04 etwa in der Version 6.6.9.7.

Magisches Universum

ImageMagick gibt es nicht nur für Linux, sondern auch für Windows, Mac OS X und iOS. Zudem existieren diverse Programmierschnittstellen, darunter die C-Core-API Magick Core [3], ein objektorientiertes C++-API namens Magick++ sowie das Perl-Interface PerlMagick, sodass sich Bilder auch dynamisch generieren lassen. Daher setzen selbst Web-Anwendungen häufig auf ImageMagick.

ImageMagick besteht aus einer Reihe von einzelnen Werkzeugen zur Bildmanipulation [4], derzeit elf an der Zahl, von denen convert das bekannteste und am meisten benutzte sein dürfte. Der gemeinsame Nenner aller ImageMagick-Tools besteht darin, dass alle auf das gleiche Fundament an Basis-Bibliotheken zurückgreifen, die unter anderem das Lesen und Schreiben der inzwischen knapp 100 unterstützen Dateiformate ermöglichen. Die Basis-Bibliotheken zeichnen auch für zahlreiche andere grafische Basis-Operationen verantwortlich.

Die eigentliche Mächtigkeit der Tool-Sammlung liegt – abgesehen von den erwähnten Programmierschnittstellen – aber vor allem in der Vielzahl möglicher Operatoren begründet. Dabei stützen sich die Beispiele aus dem Bereich Automatisierung selbstverständlich in erster Linie auf die Fähigkeiten der Bash. Da alle ImageMagick-Tools kommandozeilenorientiert arbeiten, lassen Sie sich auch in vielfältiger Weise verknüpfen.

Das mit Abstand populärste Tool aus der ImageMagick-Sammlung heißt Convert. Viele Nutzer betrachten es irrtümlich als eigenständiges Werkzeug oder gar Linux-Bordgepäck, weil viele Distributionen ImageMagick bereits vorinstallieren. Findet sich Convert auf Ihrem Rechner nicht, installieren sie erst einmal via Paketverwaltung ImageMagick.

Convert kann jedes der unterstützen Dateiformate ineinander konvertieren und außerdem jedes Bild skalieren, beschneiden, beschriften oder in sonst irgendeiner Form transformieren: Es ist also der eigentliche Bildbearbeiter im Reigen der ImageMagick-Tools. Der Einsatz von Convert funktioniert wie bei fast allen Werkzeugen nach dem Schema

$ Befehl Ursprungsbild [Optionen] Ergebnisbild

Dabei erlauben fast alle ImageMagick-Tools statt der Angabe eines Ergebnisbilds auch den Parameter x:, womit das Resultat der Verarbeitung quasi als Preview direkt auf der X11-Oberfläche in einem Viewer erscheint, statt in einer Datei zu landen (Abbildung 1).

Abbildung 1: ImageMagick kann Ergebnisse auch testweise lediglich auf der X11-Oberfläche anzeigen.

ImageMagick-Tools

Name Funktion
animate spielt eine Serie von Bildern schnell hintereinander ab
convert Bilder einlesen, bearbeiten und speichern
compare vergleicht zwei Bilder und schreibt die Unterschiede in eine Bilddatei
composite fügt mehrere Bilder zu einem Bild zusammen
conjure führt Skripte in der Skriptsprache von ImageMagick aus
display stellt ein Bild auf einem X11-Server dar
identify zeigt Dateiformat, Bildgröße und weitere Bildparameter an
import erzeugt Bildschirmfotos
montage fügt mehrere Bilder zusammen
mogrify funktioniert wie Convert, ersetzt aber das Ursprungsbild durch das Ergebnis
stream liest Teile aus Bilddateien aus, um sie etwa als Rohdaten auszugeben

Convert

Der einfachste Anwendungsfall für Convert besteht im Umwandeln des Eingangsformats in eines der unterstützen Ausgangsformate mittels

$ convert bild-alt.jpg bild-neu.png

Die zu verwendenden Grafikformate erkennt Convert anhand der Dateiendung selbstständig. Bei der Gelegenheit ist es ein Leichtes, gleich die Größe des Ziel-Bildes zu verändern, sei es um Thumbnails für eine Web-Galerie zu erzeugen oder Fotos aus verschiedenen Kameras in unterschiedlichen Ausgangsgrößen zu normieren. Convert kennt dazu den Parameter -resize. Er akzeptiert sowohl absolute Größenangaben in Pixeln (-resize 320x240) als auch relative Größenangaben in Prozent (-resize 20%).

Es gilt zu beachten, dass Sie auf diesem Weg zwar eine Zielgröße angeben dürfen, Convert aber ohne weitere Anweisungen stets das Seitenverhältnis des Ursprungsbilds beibehält. Versuchen Sie beispielsweise, einen Laptop-Screenshot von WXGA+ (1440x900) auf XGA (1024x768) herunterzurechnen, führt das entsprechende Kommando

$ convert wxga.jpg -resize 1024x768 xga.jpg

dazu, dass xga.jpg keineswegs das angegebene Zielformat aufweist, sondern vielmehr eine Größe von 1024 mal 640 Pixeln – im selben Seitenverhältnis wie das Ausgangsbild.

Sie können -resize allerdings durch Angabe eines Ausrufezeichens hinter der Größenangabe (-resize 320x240!) auch zwingen, die angegebene Skalierung vorzunehmen. Daraus resultieren je nach Formfaktor des Ursprungsbilds mehr oder minder starke Verzerrungen im Ergebnis.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 6 Heftseiten

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

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

  • 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.
  • 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.
  • Profi-Funktionen von ImageMagick nutzen
    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.
  • Bildbearbeitung auf der Shell
    Bildbearbeitung muss nicht zwingend den Start eines grafischen Programms und etliche Mausklicks bedeuten: Das ImageMagick-Paket bietet zahlreiche Kommandozeilen-Tools, mit denen Sie schnell und effektiv Ihre Bilder in die richtige Form bringen.
Kommentare

Infos zur Publikation

title_2014_08

Digitale Ausgabe: Preis € 5,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

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...
o2 surfstick software für ubuntu?
daniel soltek, 15.07.2014 18:27, 1 Antworten
hallo zusammen, habe mir einen o2 surfstick huawei bestellt und gerade festgestellt, das der nic...
Öhm - wozu Benutzername, wenn man dann hier mit Klarnamen angezeigt wird?
Thomas Kallay, 03.07.2014 20:30, 1 Antworten
Hallo Team von Linux-Community, kleine Zwischenfrage: warum muß man beim Registrieren einen Us...
openSUSE 13.1 - Login-Problem wg. Fehler im Intel-Grafiktreiber?
Thomas Kallay, 03.07.2014 20:26, 8 Antworten
Hallo Linux-Community, habe hier ein sogenanntes Hybrid-Notebook laufen, mit einer Intel-HD460...
Fernwartung für Linux?
Alfred Böllmann, 20.06.2014 15:30, 7 Antworten
Hi liebe Linux-Freunde, bin beim klassischen Probleme googeln auf www.expertiger.de gestoßen, ei...