Aus EasyLinux 04/2015

Praktische Tipps zu „convert“ und „rsync“

Automatische Fotobearbeitung

Um Fotos zu verwalten und zu bearbeiten, müssen Sie nicht zwingend grafische Anwendungen einsetzen – viele dieser Aufgaben können Sie auch mit Shell-Kommandos erledigen und sparen dabei noch Zeit.

Passend zum Urlaubsfoto-Schwerpunkt dieser Ausgabe beschäftigt sich auch das Guru-Training mit Verwaltung und Bearbeitung von Fotos – dazu nutzen wir u. a. Kommandozeilentools aus dem ImageMagick-Paket [1]: Geben Sie in einer Shell convert --version ein, um zu überprüfen, ob es bereits installiert ist. Ist die Software schon vorhanden, erhalten Sie eine Rückmeldung der Form

Version: ImageMagick 6.8.6-9 2013-10-03 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: bzlib djvu fontconfig freetype jng jp2 jpeg lcms ltdl lzma pango pangocairo png png tiff webp wmf x xml zlib

Anderenfalls erscheint eine Fehlermeldung, und Sie müssen die Software erst installieren: OpenSuse-Anwender spielen dazu über die Softwareverwaltung ImageMagick ein, in der Shell gelingt das mit

sudo zypper install ImageMagick

Unter Ubuntu oder Kubuntu ist imagemagick die richtige Wahl:

sudo apt-get install imagemagick imagemagick-doc

Ist die Software eingerichtet, kann es losgehen.

Bilder verwalten

Zunächst geht es um elementare organisatorische Aufgaben. Wenn Ihre Kamera oder das Smartphone – wie heute üblich – Dateinamen erzeugt, die einen Zeitstempel enthalten, können Sie bequem mit mv einen großen Ordner voller Bilder anhand des Datums in Unterordner sortieren.

Für die folgenden Beispiele nehmen wir an, dass die Kamera Dateinamen der Form 2015-09-20 12.49.20.jpg erzeugt. Wenn Sie die gesammelten Werke mehrerer Jahre in einem einzigen Ordner ~/Bilder liegen haben und diese nach Jahren und Monaten getrennt umsortieren möchten, können Sie mit

$ cd ~/Bilder
$ for jahr in $(seq 2012 2015); do \for monat in $(seq -f %02g 1 12); do \ mkdir -p $jahr/$monat; \ mv $jahr-$monat-* $jahr/$monat/; \ rmdir -p $jahr/$monat; \done ; done

eine Hierarchie von Unterordnern der Form 2012/01, 2012/02, …, 2012/12, 2013/01, … usw. erzeugen und alle Bilddateien in die passenden Ordner verschieben. Der abschließende rmdir-Aufruf mit der Option -p sorgt dafür, dass leere Verzeichnisse (für Monate, zu denen es keine Fotos gibt) wieder entfernt werden.

Das Kommando seq, das wir hier verwendet haben, erzeugt Sequenzen von Zahlen. Mit seq 1 12 würden Sie z. B. die Ausgabe 1 2 3 4 5 6 7 8 9 10 11 12 (mit jeder Zahl in einer eigenen Zeile) erhalten, aber durch die Option mit dem Format-String (-f "%02g") stellt das Tool den einstelligen Zahlen eine führende Null voran, so dass sich die gewünschten Zahlen (01 02 03 …) ergeben. Abbildung 1 zeigt das Verhalten von seq mit und ohne Format-Code an einem kleineren Beispiel. Mit $(...) interpretiert die Shell die vom zwischen den Klammern stehenden Kommando erzeugte Ausgabe als Teil des Befehls; die erste Zeile im längeren Befehl (for jahr in $(seq 2012 2015); do) wird also zu

for jahr in 2012 2013 2014 2015; do
Abbildung 1: Das Kommando "seq" erstellt Zahlenfolgen, auf Wunsch auch formatiert.
Abbildung 1: Das Kommando „seq“ erstellt Zahlenfolgen, auf Wunsch auch formatiert.

Für späteres Durchsuchen der Bildersammlung ist es zudem hilfreich, wenn neben dem Zeitstempel auch der Anlass (etwa ein Urlaub) in die Namen eingebaut wird. Das erreichen Sie jetzt leicht, indem Sie in einen Unterordner (z. B. 2015/09) wechseln, dort feststellen, zu welchem Thema die Bilder gehören, und dann eine weitere Schleife verwenden, um die Dateien mit mv umzubenennen – etwa so:

$ cd 2015/09
$ for i in *jpg; do mv "$i" "Urlaub-USA-$i"; done

Dadurch wird etwa aus 2015-09-20 12.49.20.jpg die Datei Urlaub-USA-2015-09-20 12.49.20.jpg. Gehen Sie für die übrigen Ordner ähnlich vor, können Sie künftig z. B. mit

find ~/Bilder -name '*Urlaub*'

nach Urlaubsbildern suchen. Ist auf Ihrem Rechner locate installiert, gelingt die Suche auch schneller mit

locate Urlaub

Größe reduzieren

Moderne Digitalkameras und auch die in Smartphones verbauten Kameras produzieren große Bilddateien, trotz JPEG-Kompression sind z. B. die Aufnahmen eines Galaxy S4 bei 5312 x 2988 Pixeln zwischen 5 MByte und 8 MByte groß. Eine so hohe Auflösung ist prima, um großformatige Fotoabzüge zu ordern, aber für den schnellen Versand per E-Mail oder das Foto-Posting auf Facebook wäre eine kleinere Version hilfreich. Statt nun Gimp oder ein anderes GUI-Tool anzuwerfen und dort die Funktion für Größenreduktion zu suchen, nutzen Sie einfach convert aus dem ImageMagick-Paket und dessen Option -resize. Die nimmt als Argument wahlweise eine Maximalgröße in Pixeln (z. B. 1000×1000) oder eine Prozentangabe. Mögliche Aufrufe des Tools haben also die Form

convert gross.jpg -resize 1000x1000 klein1.jpg

(wobei hier kein quadratisches Bild, sondern eines mit maximalen Abmessungen von 1000 x 1000 Pixeln erzeugt wird) oder

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
KAUFEN
EasyLinux 04/2015 KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland

Hinterlasse einen Kommentar

  E-Mail Benachrichtigung  
Benachrichtige mich zu: