• 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:

  • Danke!! Das schaue ich mir gleich an!
    So was ähnliches habe ich mir auch schon gebastelt - aber auf Basis des Aufnahmedatums von _FileGetProperty bzw. in einem weiteren Versuch auf Basis von ExifTool.
    War aber trotzdem noch ne ziemliche Fummlerei :rolleyes:

  • Finde das Tool super und schnell.
    Weißt du auch wie man Exif.Photo.DateTimeDigitized und Exif.Photo.DateTimeOriginal auslesen kann?

  • Weißt du auch wie man Exif.Photo.DateTimeDigitized und Exif.Photo.DateTimeOriginal auslesen kann?

    Ich habe Dir mal die Funktion umgeschrieben:

  • Wenn Du mehrere Exif-Einträge brauchst, dann ist es besser/schneller, den gesamten Exifbereich auf einmal einzulesen und die Daten im Speicher zu interpretieren.

    Das habe ich mal in dieser Funktion gemacht:

  • Hi und Danke Oscar für dein EXIF_Rename Tool 👌 .
    Bisher habe ich immer per ExifTool solche Dinge erledigt, doch dein Ansatz gefällt mir recht gut und ich schaue mal wie ich ihn für mich entsprechend anpassen werde.

    Doch dazu würde ich gern wissen ob du das Tool unter irgendeiner Lizenz zu Verfügung stellst?

    • BSD, MIT, The Unlicense oder wie es AspirinJunkie gelegentlich macht, mit der allseits beliebten WTFPL license ?
    • Denn falls nicht, darf niemand (No license) dein Tool verwenden/modifizieren etc.

    --------

    Ansonsten ein paar kleine Korinthenkacker Anmerkungen meinerseits 😂:

    • Zeile 163: $tRect ==> already declared/assigned
    • Zeile 425: $sOldDir ==> wird nicht benutzt (kann also in Zeile 423 zusammen mit "$sNum" gelöscht werden)

    Nochmals Danke 🤝 .

    Viele Grüße
    Sven

  • Nachtrag: Habe eben deinen rechtlichen Vermerk gesehen. Ist eine Art benutzerdefinierte Lizenz, okay. Doch damit fällt meine Modifikation "offiziell" weg. Bleibt es dabei Oscar ?

    Viele Grüße
    Sven