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.

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. 1000x1000) 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

convert gross.jpg -resize "25%" klein2.jpg

womit Sie die Pixelzahl sowohl in der Länge als auch in der Breite auf 25 % reduzieren. Den Erfolg der Umwandlung können Sie anschließend mit identify (auch aus dem ImageMagick-Paket) überprüfen:

$ identify gross.jpg klein*.jpg
gross.jpg JPEG 5312x2988 5312x2988+0+0 8-bit DirectClass 8.205MB 0.000u 0:00.000
klein1.jpg[1] JPEG 1000x563 1000x563+0+0 8-bit DirectClass 457KB 0.000u 0:00.000
klein2.jpg[2] JPEG 1328x747 1328x747+0+0 8-bit DirectClass 760KB 0.000u 0:00.000
$ stat -c "%7s %n" gross.jpg klein*jpg
8205169 gross.jpg
 457094 klein1.jpg
 759739 klein2.jpg

Das hier im zweiten Schritt genutzte stat-Kommando eignet sich übrigens prima dazu, nur ausgewählte Informationen über Dateien auszugeben, im Beispiel Größe und Name; die Manpage zu stat verrät, welche weiteren Format-Strings neben %s (size, Größe) und %n (name, Dateiname) zur Verfügung stehen.

Die Angabe der Zielgröße (-resize 1000x1000) hat das convert-Tool nach einem Blick in die Quelldatei, die mit 5312 x 2988 Pixeln breiter als höher ist, so interpretiert, dass die Breite auf 1000 Pixel reduziert werden soll – die Höhe hat es dann proportionserhaltend angepasst: 5312/2988 = 1,777 und 1000/563 = 1,776.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 3 Heftseiten

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

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • 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.
  • 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.
  • Am laufenden Band
    Kommandozeilenprogramme zur Bildbearbeitung punkten gegenüber den Tools mit grafischer Oberfläche durch einen entscheidenden Vorteil: Sie bieten vor allem beim Bearbeiten mehrerer Bilder deutlich mehr Flexibilität.
  • Sicherheitslücke in ImageMagick
    Die Bildbearbeitungssoftware ImageMagick liegt nicht nur vielen Linux-Distributionen bei, sie kommt auch auf Webservern zum Einsatz. Jetzt wurde eine dramatische Sicherheitslücke entdeckt. Ein Update von ImageMagick steht jedoch noch aus.
  • Zügiger Wechsel
    Manchmal muss man einen ganzen Schwung Bilder am Stück konvertieren. Hier macht ExactImage dem traditionellen ImageMagick Konkurrenz.
Kommentare

Infos zur Publikation

EL 11/2017-01/2018: Einstieg in Linux

Digitale Ausgabe: Preis € 9,80
(inkl. 19% MwSt.)

EasyLinux erscheint vierteljährlich und kostet 9,80 Euro. Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 33,30 Euro. Details dazu finden Sie im Computec-Shop.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!      

Stellenmarkt

Aktuelle Fragen

Installation Linux mint auf stick
Reiner Schulz, 10.12.2017 17:34, 0 Antworten
Hallo, ich hab ein ISO-image mit Linux Mint auf einem Stick untergebracht Jetzt kann ich auch...
Canon Maxify 2750 oder ähnlicher Drucker
Hannes Richert, 05.12.2017 20:14, 4 Antworten
Hallo, leider hat Canon mich weiterverwiesen, weil sie Linux nicht supporten.. deshalb hier die...
Ubuntu Server
Steffen Seidler, 05.12.2017 12:10, 1 Antworten
Hallo! Hat jemand eine gute Anleitung für mich, wie ich Ubuntu Server einrichte? Habe bisher...
Tinte sparen bei neuem Drucker
Lars Schmitt, 30.11.2017 17:43, 2 Antworten
Hi Leute, ich habe mir Anfang diesen Monats einen Tintenstrahldrucker angeschafft, der auch su...
Für Linux programmieren
Alexander Kramer, 25.11.2017 08:47, 3 Antworten
Ich habe einen Zufallsgenerator entworfen und bereits in c++ programmiert. Ich möchte den Zufalls...