Bildattribute

In diesem Beitrag geht es um eine Methode, um Attribute eines JPG-Bildes über die Kommandozeile auszulesen und zu verändern. Diese Attribute sind allgemein als „EXIF“-Daten bekannt. EXIF = Exchangeable Image File Format

Diese kleine Aufgabe steht in einem größeren Zusammenhang. Eine Bildersammlung soll strukturiert angezeigt werden. Bilder sollen einen Titel, eine Beschreibung, Stichwörter und eine Geokodierung bekommen. Nun könnte man das mit einem Bildberarbeitungsprogramm erledigen, wären es nicht gar so viele Bilder. Es ist ein ziemlich mühsame Angelegenheit, wenn man tatsächlich jedes Bild händisch mit diesen Angaben versehen muss. Es geht also um Automatismen, die man im Fehlerfall auch wiederholen können soll.

In diesem Beitrag wird das Detailproblem gelöst, wie man über die Kommandozeile die Attribute von Bildern editieren kann.

Bildbearbeitung mit PICASA

Picasa von Google ist für Amateure ein überaus praktisches Programm zur Verwaltung von Bildern, auch von sehr vielen Bildern. Hier ein Beispiel dafür, wie in Picasa Bildattribute verändert werden können:

Das Bild „Dorfgasse“ und die in PICASA einstellbaren Bildattribute
  • Titel: Der Titel des Bildes steht gleich unter dem Bild und kann direkt verändert werden
  • Beschreibung: die Bildbeschreibung kann in Picasa nicht verändert werden
  • Tags (Stichwörter): Die Stichwörter können über den Notiz-Tab rechts unten verändert werden.
  • Geo-Koordinaten: Die Geokoordinaten werden direkt in der Landkarte eingestellt und werden danach im Info-Bereich als Grad-Minuten-Sekunden angezeigt.

Nachteile von Picasa

PICASA ist kein ausgesprochener Editor für EXIF-Daten. Man kann nur die hier gezeigten Größen editieren.

Wenn die Bilder in Unterverzeichnissen vorsortiert sind, dann ist es nicht möglich, Angaben ordnerübergreifend zu editieren. Wenn also Tausende Bilder das Thema „Fußball“ betreffen und diese Bilder auf Hunderte Ordner aufgeteilt sind, muss man in Picasa diese Hunderten Ordner öffnen und allen dort befindlichen Dateien das Stichwort „Fußball“ setzen. Genauso ist es bei Geo-Kodierung.

Wer also seine Bilder schon bei der Speicherung ordentlich beschriftet hat, ist hier im Vorteil:-)

Einzelne Bilder zu editieren, dafür ist PICASA bestens geeignet. Wenn es aber um wirklich große Zahlen von Bildern geht, die auf Verzeichnisse aufgeteilt sind, ist es vorteilhafter, diese Bilder programmgesteuert zu bearbeiten.

Eigenschaften einer Bilddatei

Auch unser Windows-Explorer zeigt uns über die Eigenschaften -> Details einige dieser EXIF-Daten an:

Die Eigenschaften sind unterteilt in die Untergruppen Beschreibung, Ursprung, Bild, Kamera, Erweiterte Fotoeigenschaften, GPS und Datei. Einige dieser Eigenschaften könnte man sogar im Explorer verändern (Titel, Betreff, Markierungen, Kommentare), andere aber nicht, wie zum Beispiel die GPS-Daten.

EXIFTOOL

Ein ultimatives Programm zur Bearbeitung der Bildeigenschaften ist EXIFTOOL. Es ist ein Kommandozeilenprogramm. Was in diesem Beitrag gezeigt wird, ist nur eine ganz kleiner Einblick in dieses ungemein mächtige Programm.

Installation

Installation gibt es keine, es genügt, die EXE-Datei in einen Ordner zu kopieren, der im Pfad ist.

Beispiel: Auf meiner C-Platte befindet sich ein Ordner _bin. In dem Ordner sind alle alleinstehenden Programmdateien, darunter auch exiftool.exe. Damit diese Programme auch direkt von der Kommandozeile oder aus Powershell aufgerufen werden können, fügt man dien Ordner C:\\_bin zum Pfad dazu. Diese Einstellung findet man hier: Windows-Taste -> Einstellungen -> System -> Info -> Erweiterte Systemeinstellungen -> Umgebungsvariablen -> Systemvariablen -> "Path" -> Bearbeiten -> Neu -> C:\\_bin -> OK -> OK -> OK.

Eigenschaften

Welche Eigenschaften sind es, die EXIFTOOL anzeigen oder einstellen kann? Hunderte! Um sich da einzulesen, kann man die folgenden Verzeichnisse (uvam.) verwenden.

Eigenschaften lesen

Um ein bestimmtes Merkmal eines Bildes auszulesen, schreibt man:

exiftool <Optionen> <Tag>  <Dateipfad>

Bei Tags, die ein Blank enthalten, wie zum Beispiel GPS Longitude, kann man das Blank einfach weglassen oder durch ein * ersetzen. Beispiele:

PS C:\\> exiftool -Caption-Abstract s:\\desktop\\dorfgasse.jpg 
Caption-Abstract : Tafel

PS C:\\> exiftool -Description s:\\desktop\\dorfgasse.jpg
Description : Bezirksmuseum- Sammelst├╝ck: Tafel, 11, Dorfgasse

PS C:\\> exiftool -Keywords s:\\desktop\\dorfgasse.jpg 
Keywords : Herbert Langm├╝ller, Simmering

PS C:\\> exiftool -GPS*Latitude s:\\desktop\\dorfgasse.jpg 
GPS Latitude : 48 deg 10\' 30.93" N

PS C:\\> exiftool -GPS*Longitude s:\\desktop\\dorfgasse.jpg 
GPS Longitude : 16 deg 25\' 13.74" E

Man kann alle diese Eigenschaften auch in einer einzigen Abfrage auslesen, indem man die gewünschten Eigenschaften nacheinander in der Kommandozeile anführt.

PS C:\\> exiftool -Caption-Abstract -Description -Keywords -GPSLatitude -GPSLongitude s:\\desktop\\dorfgasse.jpg
Caption-Abstract : Tafel
Description : Bezirksmuseum- Sammelst├╝ck: Tafel, 11, Dorfgasse
Keywords : Herbert Langm├╝ller, Simmering
GPS Latitude : 48 deg 10\' 30.93" N
GPS Longitude : 16 deg 25\' 13.74" E

Hier noch ein weiteres Beispiel mit typischen Kameradaten

PS C:\\> exiftool -filename -imagesize -exif:fnumber -xmp:all s:\\desktop\\dorfgasse.jpg 
File Name : dorfgasse.jpg
Image Size : 1277x949
F Number : 6.1
About : uuid:faf5bdd5-ba3d-11da-ad31-d33d75182f1b
Author : Herbert Langm?ller
Description : Bezirksmuseum- Sammelst├╝ck: Tafel, 11, Dorfgasse
Subject : Herbert Langm├╝ller, Simmering
Last Keyword XMP : Herbert Langm├╝ller, Simmering
Last Keyword IPTC : Herbert Langm├╝ller, Simmering

Eigenschaften schreiben

Um eine Eigenschaft zu verändern, schreibt man

PS C:\\> exiftool -overwrite_original -Author="Herbert Langmüller" s:\\desktop\\dorfgasse.jpg
1 image files updated

Zur Kontrolle liest man die soeben geschriebene Eigenschaft wieder aus:

PS C:\\> exiftool -Author s:\\desktop\\dorfgasse.jpg
Author : Herbert Langm?ller

Umgang mit Umlauten

Eine Schwierigkeit ist die verschiedenartige Interpretation der deutschen Umlaute.

Der Namen „Langmüller“ kommt mehrmals vor. In der Eigenschaft „Author“ (eingegeben mit PowerShell) wird das ü als ? wiedergegeben, in der Eigenschaft „Subject“ (eingegeben in Picasa) als ├╝.

Zeigt man das Bild in der Gallerie Nextgen in WordPress an, wird der in Picasa eingegebene Umlaut („Subject“ ├╝) richtig und der aus PowerShell („Author“ ?) falsch angezeigt.

Was kann man tun, damit die Umlaute richtig eingetragen und angezeigt werden? Damit die Umlaute in einer DOS- oder PowerShell-Konsole richtig angezeigt werden, muss man die CodePage richtig einstellen:

PS C:\\>chcp 65001

Damit auch die Zeicheneingabe korrekt erfolgt, gibt man mit der Option -L den Zeichensatz Windows Latin 1 an und damit wird dann dien Eingabe korrekt in das interne UTF-Format konvertiert.

PS C:\\> exiftool -overwrite_original -L -Author="Herbert Langmüller" s:\\desktop\\dorfgasse.jpg 
1 image files updated
PS C:\\> exiftool -Author s:\\onedrive\\desktop\\dorfgasse.jpg
Author : Herbert Langmüller

Anzeige und Eingabe der GEO-Koordinaten

Die Geokoordinaten werden in dem eher unhandlichen Format Grad-Minuten-Sekunden ausgegeben:

PS C:\\> exiftool -GPSLatitude -GPSLongitude s:\\desktop\\dorfgasse.jpg
GPS Latitude : 48 deg 10\' 30.93" N
GPS Longitude : 16 deg 25\' 13.74" E

Um die Geokoordinaten zu einzustellen, benutzt man eine etwas ungewöhnliche Schreibweise mit zwei Kommas:

PS C:\\Users\\EIZO> exiftool -GPSLatitude="12,34,56.78" -GPSLongitude="12,34,56.78" s:\\desktop\\dorfgasse.jpg                                                                                             1 image files updated
PS C:\\Users\\EIZO> exiftool -GPSlatitude -GPSLongitude s:\\desktop\\dorfgasse.jpg
GPS Latitude                    : 12 deg 34\' 56.78" N
GPS Longitude                   : 12 deg 34\' 56.78" E

Alles das hätte man auch einfacher mit einem guten Bildbearbeitungsprogramm oder teilweise sogar im dem Eigenschaftsfenster des Windows-Explorers erledigen können, doch der Vorteil des Kommandozeilenprogramms wird sich bei der Bearbeitung vieler Bilder zeigen.

Zur Werkzeugleiste springen