Bildverarbeitung auf der Kommandozeile
In den meisten Fällen verarbeitet man mit Shellskripten Textdateien und Ausgaben von anderen Programmen. Wenig beachtet ist die Verarbeitung von Bilddateien. Aber warum sollte man so etwas tun? Die meisten Bildbearbeitungswerkzeuge von ImageJ (ausführliche Dokumentation hier) bis Photoshop bieten genügend Möglichkeiten zur Skriptverarbeitung.
Aber vielleicht möchte man schnell ein paar einfache Bildmanipulationen auf einem Server vornehmen, die dort hochgeladen wurden. Dafür Photoshop oder eine Java Runtime anzuwerfen, ist in den meisten Fällen übertrieben. Ausserdem geht es auch ein bisschen um den Spass an der Shellprogrammierung.
Mit ImageMagick und Exiftool bekommt man zwei freie und ausserordentlich leistungsfähige Programme zur Bildmanipulation und -verwaltung. Exiftool liest und schreibt die EXIF-Informationen in Digitalfotos, so dass man z.B. ein Programm schreiben kann, das nachträglich Ortsinformationen aus einer GPX-Datei in die Bilder schreibt. Oder einen Copyrightvermerk, oder, oder …
In Kombination mit ImageMagick ist ein Skript, das Thumbnails von Bildern erstellt und daraus eine kleine Online-Galerie in HTML generiert, schnell geschrieben:
#!/bin/bash
export COPYRIGHT="(c) 1967 J. Random User"
[ -d thumbs ] || mkdir thumbs && mogrify -format jpg -path thumbs -thumbnail 100x *.jpg
mogrify -fill white -undercolor '#00000080' -gravity South -annotate +0+5 '$COPYRIGHT' *.jpg
for img in *.jpg;
do
exif --ifd=0 --tag=0x010e --set-value='Holiday in Somewhere' -o $img $img
# convert $img -bordercolor white -border 50x50 $img
# convert $img -bordercolor Black -border 1x1 $img
TITLE=$(exif -m --ifd=0 --tag=0x010e $img)
cat >>EOF
EOF
done
Den HTML-Code "drumherum" habe ich mir hier aus Platzgründen gespart, er kann ebenfalls als Hier-Dokument eingefügt werden. Die Anwendung von ImageMagick und Exiftool habe ich fett markiert. In den beiden auskommentierten Zeilen kann optional noch ein Rahmen um die Bilder gezeichnet werden, was mir zumindest früher mal ganz gut gefiel.
So viele Möglichkeiten
Natürlich gibt es für eine Online-Galerie inzwischen auch praktischere Möglichkeiten, aber diesen (schon älteren) Code hatte ich mir als Anwendungsbeispiel für ImageMagick aufgehoben. Es existieren zahlreiche fertige Skripte für Effekte und Lösungen, die auch in Photoshop schon einiges an Aufwand bedeuteten. Eine meiner Lieblingslösungen ist das Whiteboard-Skript, dass aus einem blassen Handyfoto aus der Besprechung eine knackige Zeichnung macht, die man so auch in eine Projektdokumentation einbinden kann.