Hintergrundgeschichte:
Mein Schwager hat tausende JPG-Bilder auf seinem Rechner, die meistens von irgendwelchen Digitalkameras oder Smartphones stammen. Alle mit mehr oder weniger kryptischen Dateinamen plus Zaehler.
Zum Teil mit identischen Dateinamen in unterschiedlichen Unterverzeichnissen. Ich schlug ihm vor, dass er diese doch wenigstens nach Datum/Uhrzeit umbenennen kann, um da etwas Ordnung reinzubekommen. Also habe ich mal wieder AutoIt bemüht und ihm ein Programm geschrieben, welches anhand der EXIF-Daten einen entsprechenden Dateinamen generiert und die Datei so umbenennt.
Technisches:
Das auslesen der EXIF-Daten kann man entweder mit den GDI+ Funktionen erledigen, was allerdings relativ lange dauert, weil man das Bild erst komplett in den Speicher laden muss. Bei mehreren Hundert Bilder dauert das seeehr lange.
Also habe ich im Internet recherchiert und mir den Aufbau der Struktur direkt in den Binärdaten der Datei angesehen. So kann man die EXIF-Daten sehr viel schneller auslesen, weil man nur wenige Bytes der Datei einlesen muss.
Problematisch war, dass mein Schwager auch Bilder hat, die keinerlei EXIF-Daten enthalten und diverse Bilder, bei denen die EXIF-Daten fehlerhaft sind. Also habe ich noch eine Fallback-Funktion eingebaut, bei der in diesen Fällen das Dateierstellungsdatum verwendet wird und falls das JPG selbst kaputt ist (da waren auch einige dabei), wird "1900-01-01__00-00-00" als Dateiname zurückgegeben. Auf diese Weise sieht er gleich, woran er ist.
Naja, lange Rede kurzer Sinn: Vielleicht könnt ihr ja auch so ein Programm gebrauchen.
Eigenschaften:
- "Drag and drop" von Verzeichnissen/Dateien auf ein markiertes Feld im Hauptfenster.
- Verzeichnisse können auch rekursiv eingelesen werden (das kann u.U. aber sehr lange dauern, wenn dort mehrere Tausend Bilder liegen)
- Hauptfenster kann "Immer im Vordergrund" gesetzt werden.
- Ein bereits bestehender Dateiname wird an das EXIF-Datum/Uhrzeit angehängt, wenn der Haken im Listview gesetzt ist.
- Über das Kontextmenü beim Listview kann man das markieren/anhaken etwas komfortabler erledigen.
- Eine Vorschau-Funktion, wenn man eine Datei im Listview doppelt anklickt.
Das Script gibt es als ZIP-Archiv im Anhang zum download.
Screenshot: