Bilder sortieren und umbenennen unter Linux

Im Urlaub werden immer Unmengen an Fotos geschossen, welche nach dem Urlaub sortiert werden wollen. Da ich gerade vor dem Problem stand Fotos von vier unterschiedlichen Kameras zu sortieren, will ich mein zusammengesuchtes Wissen hier mal preisgeben ­čÖé

Wurde vergessen bei einer Kamera die korrekte Ortszeit einzustellen, kann man dies mittels „jhead“ korrigieren. Befand man sich z.B. in der kanadischen Zeitzone „Mountain Time“, die Kamera war aber auf die Mitteleurop├Ąische Zeitzone eingestellt, lautet der Befehl „jhead -ta-8:00:00 *.jpg“. Damit wird der Zeitstempel in den Fotos um 8 Stunden zur├╝ckgestellt. Ein „jhead -ta+1:00:00 *.jpg“ w├╝rde den Zeitstempel um eine Stunde vorstellen. Wenn Fotos von vier Kameras sortiert werden m├╝ssen, wird auch mindestens eine Kamera dabei sein, deren Uhr um 10-15min verstellt ist. Das kann man mit „jhead -ta-0:15:00 *.jpg“ korrigieren.

Wer eine Fotoverwaltung wie Shotwell, Picasa, iPhoto, … verwendet kann an dieser Stelle eigentlich aufh├Âren. Die meisten Programme ordnen die Fotos anhand des Erstellungsdatums an. Yours truly ist aber ein gro├čer Anh├Ąnger von geordneten Verzeichnisstrukturen, daher ist noch etwas mehr Handarbeit angesagt, bis alles im gew├╝nschten Format ist ­čÖé

Hat man die Zeitstempel in den Fotos alle auf die korrekte Ortszeit umgestellt, kann man die Dateinamen mittels „jhead -n%Y-%m-%d-%H:%M:%S *.jpg“ vereinheitlichen. Die Dateinamen der Fotos sehen danach z.B. so aus „2010-09-11-07:59:51.jpg“.

Achtung: Dateien mit Doppelpunkt im Namen sind unter Windows nicht erlaubt! Wer seine Bilder auch auf Windowsrechner anschauen will, verwendet besser keine Doppelpunkte. Der passende Befehl w├Ąre dann „jhead -n%Y-%m-%d-%H%M%S *.jpg“ und f├╝hrt zu Dateinamen wie „2010-09-11-075951.jpg“. Nicht ganz so sch├Ân, aber funktioniert auch unter Windows ­čÖé

Jetzt m├╝ssen nur noch alle Fotos eines Tages in ihr eigenes Unterverzeichnis verschoben werden. Das funktioniert per „exiftool“ und ’nem kleinen shell script:

echo *.jpg | for file in *.jpg
do
picdate="`exiftool -CreateDate -d "%Y-%m-%d" $file | cut -f2 -d: | tr -d ' '`"
if [ "$picdate" != "" ]
then
test -d $picdate || mkdir $picdate
mv -n $file $picdate/$file
fi
done

Fertig ­čÖé

Schreibe einen Kommentar

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr dar├╝ber, wie deine Kommentardaten verarbeitet werden.