aufmacher-glatze.jpg

Knipsen ohne Schwund

JPEG-Bilder automatisch umbenennen und verlustlos bearbeiten

01.10.2005
Digitalkameras vergeben weder sinnvolle Dateinamen, noch drehen sie Bilder automatisch. Eine Handvoll Linux-Programme schafft Abhilfe: Sie geben Fotodateien sinnvolle Namen und manipulieren JPEGs verlustlos. So schaffen Sie Ordnung in der Fotosammlung und schonen beim Betrachten Ihr Genick.

Auch ältere Digicams wie die Olympus Camedia C-860L speichern Fotos im JPEG-Format mit passenden EXIF-Informationen. Diese bettet die Kamera direkt in den Header der JPEG-Bilder ein. EXIF ergänzt dabei nicht nur JPEG-Dateien sondern auch TIFF- oder RIFF-Wave-Dateien.

Zu den Metainformationen, die im Header der Bilddatei landen, gehören je nach Kameramodell Datum und Uhrzeit der Aufnahme, Belichtungszeit, Blendeneinstellung, Belichtungsprogramm, Größe, Auflösung und Orientierung des Bildes. Um die Orientierung festzustellen, besitzen einige Kameras einen Sensor, der feststellt, ob der Fotograf das Gerät hochkant oder gar auf dem Kopf hält.

Bildorientierung

EXIF-Wert 1. Reihe des Bildes 1. Spalte des Bildes Beispiel
1 oben links
2 oben rechts
3 unten rechts
4 unten links
5 links oben
6 rechts oben
7 rechts unten
8 links unten

Nutzen von EXIF

Es gibt unter Linux mehrere Programme, die EXIF-Informationen tatsächlich verwenden (Tabelle "Anwendungen"). Zudem ermöglicht es eine Reihe von Kommandozeilen-Werkzeugen, mehrere Bilder skriptgesteuert zu verarbeiten.

Eine erste einfache Anwendung besteht darin, sich die EXIF-Informationen zunächst einmal anzeigen zu lassen. Verwenden Sie den KDE-Dateimanager Konqueror, dann rufen Sie im Kontextmenü für die Bilddatei Ihrer Wahl den Menüpunkt Eigenschaften auf. Die EXIF-Informationen finden Sie unter Meta-Info. Dort können Sie einen Kommentar für das Bild eingeben, der im Header der Datei landet. Die Bildorientierung unter Ausrichtung ist ein numerischer Wert (Tabelle "Bildorientierung"). Die KDE-basierten Bildanzeiger Gwenview und Kuickshow unterstützten diesen einheitlichen Dialog ebenfalls.

Abbildung 1: Der Dateimanager Konqueror zeigt EXIF-Informationen von Fotos im Eigenschaften-Dialog an.

Bevorzugen Sie stattdessen Nautilus, finden Sie im Kontextmenü für die Bilddatei ebenfalls den Menüpunkt Eigenschaften. Unter Bild zeigt Nautilus einige EXIF-Werte an, allerdings nicht die Orientierung des Fotos. Den Kommentar, den Sie unter Notizen angeben können, speichert Nautilus übrigens nicht im Bild, sondern unterhalb von ~/.nautilus/metafiles/.

Auf der Kommandozeile bieten die zwei Befehle exiftags und metacam einen großen Funktionsumfang. Da nicht alle Distributionen Pakete dieser Programme mitliefern, finden Sie den Quellcode auf der Heft-CD. Für Exiftags gibt es auf der CD außerdem ein RPM-Paket. Die Quellen übersetzen Sie nach dem Entpacken mit dem Befehl make. Die ausführbare Datei kopieren Sie dann mit Root-Rechten nach /usr/local/bin/.

Dateien automatisch umbenennen

Geben Sie nun zum Test den Befehlsnamen gefolgt von dem Namen einer Bilddatei an, die Sie untersuchen möchten: exiftags Foto.jpg. Eine nützliche Anwendung der EXIF-Daten besteht darin, Fotos mit Datum und Uhrzeit im Dateinamen zu versehen. Dazu dient Jhead: jhead -n%Y-%m-%d_%H-%M-%S *.jpg benennt alle JPEG-Bilder im aktuellen Verzeichnis entsprechend um. Das Format lässt sich sehr flexibel anpassen. Beachten Sie jedoch, dass hinter der Option -n kein Leerzeichen steht.

Mit dem Schalter -nf benennen Sie auch Bilder um, deren Dateinamen nicht hauptsächlich aus Ziffern bestehen. Digitalkameras speichern Bilder nämlich meistens in einem Format, das größtenteils Ziffern verwendet. Damit verhindert Jhead, dass Sie bei Verwendung von -n Dateien umbenennen, die Sie bereits selbst manuell umbenannt haben. Die Option -ft setzt das Datum der Datei auf den Zeitpunkt der Aufnahme.

Auch das KDE-Programm Krename bietet die Möglichkeit, Dateien anhand der EXIF-Informationen umzubenennen. Fügen Sie im Fenster des Programms einige Dateien ein und geben Sie als Muster etwa $-[jpgCreationDate]-[jpgCreationTime] ein. Sie können auch andere EXIF- und JPEG-Informationen wie Kommentar oder JPEG-Qualität verwenden. Die entsprechenden Platzhalter erfahren Sie über den Button Funktionen im Reiter Dateiname. Krename verwendet standardmäßig das im KDE-Kontrollzentrum definierte Datums- und Zeitformat. Mit einem Muster wie $-[7-{[jpgCreationDate]}]-[4-5{[jpgCreationDate]}]-[1-2{[jpgCreationDate]}]-[jpgCreationTime] stellen Sie auf das deutsche Format in der Reihenfolge Jahr-Monat-Tag um, die sich mit einem Dateimanager besser sortieren läßt (Abbildung 2).

Abbildung 2: Mit Krename benennen Sie Fotos nach deren Aufnahmedatum um. Die etwas unübersichtlichen Muster der Platzhalter erklärt die Hilfe zum Programm.

Ohne Verluste

Wer eine Kamera mit Orientierungssensor sein Eigen nennt, will seine Fotos in der Regel richtig herum betrachten. Während der Bildanzeiger Kuickshow das Bild gemäß der Orientierungsinformation gleich richtig herum darstellt, lädt Gwenview das Bild erstmal ein, stellt es dar und dreht es dann. Kview, Eye of Gnome (EOG), Gqview, Feh, Display (in ImageMagick) und Showfoto (in Digikam) drehen das Bild nicht automatisch.

Daher müssen Sie die Bilder eigenhändig drehen beziehungsweise von einer Helferapplikation rotieren lassen. Dabei ergibt sich allerdings eine potenzielle Fehlerquelle: Das JPEG-Format ist verlustbehaftet, wodurch sich viel Platz sparen lässt. Bei jedem Einladen, Bearbeiten und Speichern eines JPEG-Bildes gehen jedoch Informationen verloren. Das endet je nach verwendeter Qualitätsstufe früher oder später in unerwünschten Artefakten.

Glücklicherweise gibt es Programme, die JPEG-Bilder verlustfrei bearbeiten. Diese machen sich den internen Aufbau des JPEG-Formats zunutze: Ein Schritt des JPEG-Verfahrens besteht darin, das Bild in Blöcke von acht mal acht, 16 mal acht oder 16 mal 16 Pixeln einzuteilen. Daher können Programme nur solche Bilder verlustfrei bearbeiten, deren Größe ein Vielfaches von acht mal acht, 16 mal acht oder 16 mal 16 Pixeln beträgt (also 1600 x 1200 oder 3072 x 2048).

Anwendern stehen einige grundsätzliche verlustfreie Bearbeitungsschritte zur Verfügung: Das oft benötigte Rotieren, Spiegeln und Beschneiden eines Bildes sowie dessen Umwandlung in ein Schwarzweißbild. Bei letzterem gehen natürlich die Farbinformationen verloren.

Drehen und spiegeln

Beim Drehen von Fotos helfen die EXIF-Informationen von Kameras mit Orientierungssensor. So verwendet jhead -autorot *.jpg den Befehl jpegtran, um alle JPEG-Bilder des aktuellen Verzeichnisses gemäß ihrer EXIF-Daten zu drehen. Dabei setzt es den Wert für die Orientierung nach dem Drehen automatisch auf 1 für "oben links". Praktischerweise berücksichtig Jhead dabei anders als Exiftran von vorneherein nur die Fotos, die gedreht werden müssen.

Um Fotos manuell zu rotieren, benutzen Sie Exiftran. exiftran -i -9 Bild.jpg dreht ein Bild um 90 Grad, mit -1 um 180 Grad, mit -2 um 270 Grad. Die Option -f spiegelt horizontal und die Option -F vertikal.

Jpegtran arbeitet zwar bei Bildern, deren Abmessungen nicht der JPEG-Blockgröße entsprechen, ohne Verluste. Das funktioniert aber nur, indem das Werkzeug den eventuell übrig bleibenden Randbereich nicht umwandelt, sodass ein Balken am Rand des Bildes erhalten bleibt. Rufen Sie Jpegtran mit der Option -trim auf, entfernt es diesen Randbereich, arbeitet dann aber nicht verlustfrei.

Mit der Option -perfect quittiert Jpegtran Transformationen von Bildern, deren Größe nicht durch die JPEG-Blockgröße teilbar ist, mit einem Fehler. So dreht jpegtran -perfect -rotate 90 Bild.jpg > Bild_neu.jpg || djpeg Bild.jpg | pnmflip -r90 | cjpeg > Bild_neu.jpg ein Bild verlustfrei, wenn die Abmessungen passen, ansonsten kommen Djpeg und Cjpeg zur Anwendung, die verlustbehaftet arbeiten.

Anwendungen

Anwendung EXIF-Unterstützung Verlustfreies Drehen und Spiegeln
Digikam 0.7.2, Fotoverwaltung Einladen, anzeigen, jedoch nicht speichern Im Kontextmenü zum Bild, auch automatisch nach EXIF-Informationen
Eye of Gnome 2.8.2, Bildanzeiger Einladen, anzeigen und speichern Nein
Feh 1.3.4, Bildanzeiger Nein Über FileEdit in Place. EXIF-Information geht verloren
Gimp 2.2.7, Bildbearbeitung Speichern Nein
Gqview 2.0.1, Bildanzeiger Einladen und anzeigen Über BearbeitenIn Rotiere ...
Gwenview 1.2.0, Bildanzeiger Einladen, anzeigen, speichern und automatisches Drehen bei der Anzeige Über Bearbeiten und Plugins / Bilder, auch automatisch nach EXIF-Informationen
Kpaint 0.6.2, Malprogramm Nein Nein
Kolourpaint 1.4.1, Malprogramm Nein Nein
Kuickshow 0.8.7, Bildanzeiger Einladen, anzeigen, automatisches Drehen bei Anzeige, jedoch nicht speichern Nein

Mit GUI

Verlustfreies manuelles Drehen und Spiegeln erlauben auch die Bildanzeiger Gwenview, Gqview (jeweils mit installiertem Jpegtran) und Feh. So drehen Sie Ihre Fotos gleich während einer Diashow. Digikam bietet mit Hilfe der Kipi-Plugins weitreichende Möglichkeiten: Ist das Kipi-Plugin für das verlustfreie Ändern von JPEG-Bildern installiert und aktiviert, finden Sie im Kontextmenü für ein Bild die Möglichkeiten Automatisches Drehen und Spiegeln mit Hilfe der EXIF-Informationen, Drehen, Spiegeln und Konvertiere nach Schwarzweiß (Abbildung 3).

Abbildung 3: Auch die Fotoverwaltung Digikam beherrscht das automatische Drehen und Spiegeln anhand der EXIF-Informationen. Dazu benötigen Sie allerdings eine Kamera mit Orientierungssensor.

Schneiden

Das verlustfreie Beschneiden eines Bildes gelingt ebenfalls mit Jpegtran. So eignet sich der Aufruf jpegtran -copy all -crop 904x904+1192+200 Bild.jpg > Bild_neu.jpg dazu, das Gemälde zum zehnjährigen Bestehen des Linux-Magazins aus Abbildung 4 in den Mittelpunkt zu rücken. Das Foto nutzt eine Blockgröße von 16 und da die Startkoordinate 1192,200 nicht durch 16 teilbar ist, hat Jpegtran die Startkoordinate um die nötigen acht Pixel nach oben links verschoben. Keines der getesteten Programme mit grafischer Oberfläche unterstützt das verlustfreie Beschneiden von JPEG-Bildern.

Abbildung 4: Jpegtran beschneidet Bilder verlustfrei. Falls der zu beschneidende Ausschnitt nicht genau an einen JPEG-Block grenzt, vergrößert Jpegtran den Ausschnitt entsprechend um die nötigen Pixel.

Wenn Sie ein JPEG-Bild doch mal mit einem Bildbearbeitungsprogramm verändern und wieder als JPEG-Bild speichern wollen, verwenden Sie dazu am besten ein Programm, dass auch die EXIF-Informationen wieder speichert. Gimp hat dafür im Dialog zu den JPEG-Optionen die erweiterte Option EXIF Daten speichern, die es standardmäßig einschaltet. Bei Kolourpaint und Kpaint hingegen gehen die EXIF-Informationen beim Speichern verloren.

Glossar

EXIF

Exchangable Image File Format. Standard der Japan Electronic Industry Development Association (JEIDA) für das Format, in dem Digitalkameras Metainformationen ihrer Bilder abspeichern.

JPEG

Joint Photographic Expert Group. 1986 gegründetes Gremium, das im September 2002 ein standardisiertes Verfahren zur verlustbehafteten und verlustfreien Kompression von digitalen Bilddaten entwickelt hat. Das umgangssprachlich als JPEG bezeichnete JFIF-Dateiformat (JPEG File Interchange Format) dient zur Speicherung solcher Bilder.

TIFF

Tagged Image File Format. Verlustfreies Dateiformat für Bilder.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare