ImageMagick ist eine Sammlung mit spezialisierten Anwendungen für das Bearbeiten, Erstellen und Konvertieren von über 100 Grafikformaten. Natürlich können diese Aufgaben auch mit einer Grafiksoftware erledigt werden (z.B. GIMP), aber die ImageMagick Werkzeuge lassen sich vollständig über die Kommandozeile bedienen und bieten sich daher für automatisierte Prozesse und die Massenbearbeitung von Bilder an.
Im Rahmen der Artikelserie Werkzeugkiste, in der ich Open Source Anwendungen vorstelle, die bei meiner Projektarbeit zum Einsatz kommen, stelle ich euch nun drei ImageMagick Programme aus mit Beispielen vor.
- convert für das Konvertieren von Dateiformaten
- identify zum Auslesen von Bildformat und Charakteristika
- import für das schnelle Erstellen von Screenshots
Convert
Convert ist das wohl wichtigste Werkzeug im Softwarepaket. Es ermöglicht das Konvertieren verschiedener Bilddateiformate und enthälte zahlreiche Filter zur Bildmanipulation.
Ich verwende es beispielweise um die Grafiken, die Inkscape standardmäßig ins verlustfreie PNG Format (Portable Network Graphics Format) exportiert in web-taugliche JPEGs zu wandeln. Ein typischer Anruf sieht dann folgendermaßen aus:
convert input.png output.jpg
Möchten wir zusätzlich noch die Qualität der JPEG Ausgabe beeinflussen, ergänzen wir den Aufruf um einen entsprechenden Parameter:
convert -quality 85 input.png output.jpg
Vielleicht möchten wir für unsere web-taugliche JPEG auch gleich ein kleines Vorschaubild erzeugen:
convert -resize 80x80 input.png thumb-output.jpg
Natürlich können wir unserer convert Aufruf auch in ein Skript oder eine Batch Datei einbetten und beispielsweise für ein ganzes Verzeichnis durchlaufen lassen. Gerade in der Massenbearbeitung liegt die Stärke des ImageMagick Packets.
Identify
Ich schreibe meinen HTML Code von Hand in einem Editor oder in das Web Frontend meines CMS Systems. Dabei achte ich auch stets darauf, dass beispielsweise bei Grafiken immer die Pixeldimensionen mit angegeben werden. Für ein einzelnes Bild kann man hierfür zwar einen beliebigen Bildbetrachter heranziehen, da ich aber immer ein paar Konsolenfenster geöffnet habe, ist ein folgender Aufruf bedeutend schneller:
identify unknow-image.jpg
Als Ergebnis erhalten wir unter anderem die Pixelgröße und Farbtiefe:
unknow-image.jpg JPEG 1307x1743 1307x1743+0+0 8-bit DirectClass 310KB 0.000u 0:00.000
Import
Für das Redesign der BLUP BBS Website habe ich neue Screenshots der Mailbox erstellt. Die Screenshots sollten alle die gleiche Größe haben und es sollten direkt auch Vorschaubilder generiert werden.
Das ImageMagick Paket enthält hierfür genau das richtige Werkzeug in Form von import. Import ermöglicht das Erstellen von Screenshots einzelner Fenster oder des gesamten Desktops mit einem Kommandozeilenbefehl:
import -window 0xe00001 screenshot-01.png
Dieses Kommando speichert ein Screenshots vom Fenster mit der Window Id 0xe00001 in die Datei screenshot-01.png. Die Window Id läßt sich im X Window System z.B. mit dem Befehl xwinifo bestimmen. In Kombination mit dem oben beschriebenen convert kann der Prozess des Erstellens des Screenshots und der Web Vorschau z.B. in einem kleinen Skript zusammengefasst werden.
Damit bin ich auch schon am Ende meiner kleinen ImageMagick Vorstellung. Weitere anschauliche Anwendungsbeispiele finden sich auf der ImageMagick Website. Für Entwickler sind die zahlreichen Bindungen an verschiedene Programmiersprachen interessant. Damit können dynamisch Bilder erstellt und manipuliert werden. Bei vielen Web Hostern ist ImageMagick bereits vorinstalliert und kommt bei einigen Content Management Systemen (z.B. Typo3) im Backend zum Einsatz.