Ordnerstruktur und Namensgebung für Bilder

Wer viele Bilder hat, dem ist es sicherlich schonmal untergekommen, dass ein Bild nicht mehr dort war, wo man es vermutet hat. Oder schlichtweg die Frage, wo soll ich die ganzen Bilder eigentlich abspeichern? Und bestimmt auch: Verflixt, wie bekomme ich denn hier eine einheitliche Sortierung hin?

Nun… Genau, die Frage habe ich mir natürlich auch schon öfter gestellt. Ich mache es kurz. Bei mir läuft das so: Ein Ordner für jedes Jahr mit der Jahreszahl und dann dort jeweils Unterordner mit dem Monat, dem Tag und dem Eventnamen.

  • 2016
    • 06-20 Urlaub Tag 1
      • bearbeitet
    • 06-21 Urlaub Tag 2
      • bearbeitet
  • 2017
    • 01-03 Wintershooting

In diesen Ordnern sind immer erstmal nur die Rohdaten meiner Bilder zu finden. Mit der Zeit kommen nach der Bearbeitung dann die xmp (Sidecar) Dateien mit hinzu. Diese werden von Darktable (freies Bildbearbeitungsproblem) automatisch angelegt.
Habe ich meine Bilder fertig bearbeitet, exportiere ich jpgs jeweils in den Unterordner bearbeitet. Diese letzte Schritt ist bei mir im Moment im Umbruch und wird sich womöglich nochmal ändern. Der Vorteil dieser Struktur ist recht schnell offensichtlich. Die Fotos lassen sich automatisch chronologisch sortieren und durch die Eventnamen auch recht schnell durchsuchen. Damit das für ein einzelnes Foto noch besser funktioniert, sollten auch die Fotos selbst in ein gleiches Schema umbenannt werden. Die Bilder heißen bei mir dann zum Beispiel „2017-01-03 Wintershooting 1234.DNG“. Die letzten 4 Ziffern ist die fortlaufende Nummer, die meine Kamera generiert. Diese behalte ich üblicherweise, um schnell kontrollieren zu können, dass ich alle Bilder übertragen habe. Entsteht hier eine Lücke, muss ich wohl nach einer SD-Karte suchen ;-).

Für das Umbenennen selbst habe ich zwei Möglichkeiten. Früher habe ich hierfür krename und den folgenden Einstellungsstring verwendet:

[js;if("[exifExif.Photo.DateTimeOriginal]"!=="")
 {a="[exifExif.Photo.DateTimeOriginal]"
     .replace(/:/g,"-")}else{a}] 
[js;{b="[$dirname]"; if(b!=="bearbeitet")
 {c=b}else{c="[$dirname.] - [$dirname]"};
   c.substring(6)+" [$33-50]"}]

Eine Besonderheit bei mir ist noch, dass ich manchmal vergesse, die Bilder vor dem Import in Darktable umzubenennen. In diesem Fall ist es wichtig für mich, dass auch die zugehörigen xmp-Dateien von Darktable entsprechend umbenannt werden. Da diese keine EXIF Daten enthalten, habe ich sowohl bei krename mit Javascript als auch bei der nachfolgenden Methode etwas getrickst, um das gewünschte Ergebnis zu erhalten.
Ich selbst habe mir mittlerweile ein python-Skript geschrieben, das den gleichen Zweck erfüllt. Grund war, dass nach mehreren Updates krename bei mir nicht mehr richtig läuft und ich eine dauerhafte Lösung haben wollte. Anschließend also der Code des Skripts. Es ist immer mit dem Ordner des Shootings aufzurufen, also zum Beispiel:

python rename-image.py 01-03 Wintershooting/
#!/usr/bin/python3

import os
import sys
import re
import exiftool

foldername = sys.argv[1]
topic = foldername[6:]

et = exiftool.ExifTool()
et.start()

if topic[-1]=="/":
 topic = topic[:-1]

dateOrig = ""

oldPaths = []
newPaths = []

for file in os.listdir(sys.argv[1]):
 path = foldername + "/" + file
 tags = None
 print("oldname:", file)
 dateTag = "EXIF:DateTimeOriginal"
 md = et.get_tags([dateTag], path)
 if dateTag in md.keys():
 dateOrig = md[dateTag]
 dateOrig = dateOrig.replace(":", "-")
 indexOfDot = file.find(".")
 id = file[indexOfDot-4:indexOfDot]
 ending = file[indexOfDot:]
 newFile = dateOrig + " " + topic + " " + id + ending
 print("newname:", newFile)
 oldPaths.append(foldername + "/" + file)
 newPaths.append(foldername + "/" + newFile)

et.terminate()

apply = input("Should this be applied? [y/N] ")

if apply == "y":
 for i in range(0, len(oldPaths)):
 os.rename(oldPaths[i], newPaths[i])
Advertisements

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s