Posts mit dem Label Exif werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Exif werden angezeigt. Alle Posts anzeigen

Dienstag, 24. August 2010

EXIF Zeitstempel nach hinten verschieben

Im vorhergehenden Post habe ich mich dem Umbenennen nach Zeitstempeln gewidmet, mit welchem man Bilder von mehreren Kameras in eine einzige chronologische Reihenfolge bringen kann.

Was kann man aber tun, sofern diese EXIF-Daten falsch sind? Bestes Beispiel dafür wäre, dass vergessen wurde, nach einem Batteriewechsel Datum und Uhrzeit der Cam korrekt einzustellen.

Die Lösung hierfür bietet ein kleines Programm namens "ExifTool" und kann hier geladen werden.
Nach dem Download der Windowsversion erhält man eine gezippte Datei. Sobald diese entpackt ist, muss man, um die Funktionalität der .exe zu vervollständigen (bzw. um den Editiermodus zu aktivieren) die exiftool(-k).exe umbenennen in exiftool.exe

Der gewünschte Schalter wird hier erklärt. Es ist also so, dass wir die Differenz der Quell und Zieldaten wissen müssen.
Beispiel: eine Kamera wird nach dem Batteriewechsel eingeschaltet am 03.11.2005 um 10:48:00 Uhr. Der Zeitstempel der Kamera ist aber 01.01.2000 00:00:00 Uhr, sobald die Batterien eingelegt werden. Die Differenz ist also 5 Jahre, 10 Monate, 2 Tage, 10 Stunden, 48 Minuten und 0 Sekunden.

Um diese Kalkulation zu vereinfachen, habe ich einmal ein Excelfile erstellt, in welchem diese Differenz sehr einfach berechnet werden kann (Download als Zip weiter unten).
Desweiteren habe ich eine Batch erstellt, welche kommandozeilenunerfahrenen Menschen als eine kleine Ersatzgui dienen soll. Heruntergeladen werden kann dies nun hier.
Den Inhalt in einen beliebigen Ordner entpacken und anschließend (WICHTIG!) die exiftool.exe in diesen Ordner kopieren.

Handhabung:
Mit dem Excelsheet kann nun die Differenz berechnet werden. Wenn man die Batchdatei (change_exifdate.bat) nun öffnet, kann man die errechneten Daten eingeben. Anschließend wird man gefragt, ob man den im Verzeichnis enthaltenen Ordner "temp" als Ordner für seine Bilder angeben möchte, oder ob man den Pfad zu den Bilder selber definieren möchte (rechte Maustaste in die Kommandozeile um einzufügen!). Anschließend werden Exif-Informationen wie gewünscht geändert.

Sofern Fehler in der Batch auffallen, bitte melden! Habe auch versucht, die Errorlevel so gut als möglich abzuhandeln, aber eigentlich sollte der Vorgang nicht unterbrochen werden.

Der Inhalt der Batch sieht wie folgt aus:


@echo off

echo ####################################
echo ####### Copyright by  Snaker #######
echo ######## created 2010-08-19 ########
echo ###### last modify 2010-08-25 ######
echo ## Exif-Tool by  Phil Harvey from ##
echo ###### www.sno.phy.queensu.ca ######
echo ####################################
echo.
echo.
cd.

set /p JAHRE=Bitte geben sie die Differenz der Jahre an:
echo.
if not defined JAHRE goto ERROR

set /p MONATE=Bitte geben sie die Differenz der Monate an:
echo.
if not defined MONATE goto ERROR

set /p TAGE=Bitte geben sie die Differenz der Tage an:
echo.
if not defined TAGE goto ERROR

set /p STUNDEN=Bitte geben sie die Differenz der Stunden an:
echo.
if not defined STUNDEN goto ERROR

set /p MINUTEN=Bitte geben sie die Differenz der Minuten an:
echo.
if not defined MINUTEN goto ERROR

set /p SEKUNDEN=Bitte geben sie die Differenz der Sekunden an:
echo.
if not defined SEKUNDEN goto ERROR

:ASK
echo.
echo.
echo Was wollen Sie tun?
echo (a) Ich moechte den Pfad zu den Bildern selber angeben
echo (b) Ich moechte den Ordner "temp" als Zielordner fuer die Bilder verwenden
choice /C ab /N /M "Druecken Sie a fuer Option a oder b fuer Option b: "

if errorlevel 255 goto ERROR
if errorlevel 2 goto OPTION_B
if errorlevel 1 goto OPTION_A
if errorlevel 0 goto REASK

:OPTION_A
echo.
echo Sie haben Option "A" gewaehlt
goto PFAD1

:OPTION_B
echo.
echo Sie haben Option "B" gewaehlt
goto PFAD2

:REASK
echo.
echo Sie haben keine korrekte Antwort eingetippt
echo.
goto ASK

:PFAD1
echo.
set /p PFAD=Bitte geben sie den Pfad zum Ordner mit den Bildern an (ohne Hochkomma)!
if not defined PFAD goto ERROR

echo.
echo Es wird nun mit der Aenderung der Exifinhalte begonnen
echo.

exiftool.exe "-DateTimeOriginal+=%JAHRE%:%MONATE%:%TAGE% %STUNDEN%:%MINUTEN%:%SEKUNDEN%" "%PFAD%"
goto ERFOLG

:PFAD2
echo.
echo Die Exif-Daten der Bilder im Ordner "temp" werden nun abgeändert
echo.

exiftool.exe "-DateTimeOriginal+=%JAHRE%:%MONATE%:%TAGE% %STUNDEN%:%MINUTEN%:%SEKUNDEN%" "temp"
goto ERFOLG

:ERROR
echo.
echo Es ist ein Fehler aufgetreten, das Programm wird abgebrochen
Goto ENDE

:ERFOLG
echo.
echo Erfolgreich abgeschlossen

:ENDE
echo Programm wird nun beendet
pause



So far

Snaker

Sonntag, 22. August 2010

Bilder von verschiedenen Digitalkameras in eine chronologische Reihenfolge bringen

Wer für seine Freunde öfter mal Bilder online stellen möchte, kennt das Problem:
Eine Party, 2 oder 3 Freunde mit Digi-Cams. Sobald man alle Bilder hat, muss man 3 Alben erstellen und der Benutzer muss 3 Alben durchsehen, bzw. den Abend 3x durchgehen ...

Die Lösung: IrfanView
Dieses mächte Bildprogramm kann mehr, als nur alle möglichen Bildertypen und Formate darstellen, sondern es enthält auch eine Batch-Bilderbearbeitung, d. h. man nimmt eine Liste von Bildern und ändert z. B. die Größe von allen Bildern, oder man benennt sie eben anhand diverser Sortierkriterien um. Dies habe ich in der Vergangenheit bereits mit ACDSee getan, IrfanView bietet meiner Meinung nach aber die besseren Optionen und ist zudem noch Freeware und sogar als Portable Version verfügbar:
Herstellerseite Irfan View
Download IrfanView
Download IrfanView Portable

Zum Vorgang selber:
Wie bekomme ich meine Bilder jetzt also chronologisch geordnet, alle in einem einzigen Ordner?

Step 1: Kopieren (sicherheitshalber) aller Bilder in einen Ordner (sollten in den wenigsten Fällen die gleichen Namen haben, wenn doch, einfach mit dem später beschriebenen Umbenennungsprogramm einen _ dahintersetzen oder etwas in der Art)
Step 2: IrfanView starten
Step 3: Datei > Batchkonvertierung/umbenennung (bei deutscher GUI)
Step 4: Optionen setzen (Reihenfolge beachten! IrfanView ist da etwas eigen ...):
  • "Arbeite als" -> Batch-Umbenennen.
  • Name (Muster) -> "Ergeinis_####" (hier kann man setzen, was man möchte, eine Raute steht dabei für eine fortlaufende Zahl, bei 4 Rauten also "Ereignis_0001.jpg, Ereignis_0002.jpg" usw.
  • auf der rechten Seite das Zielverzeichnis wählen, in welches vorhin alle Bilder hineinkopiert wurden
  • Detailansicht auswählen
  • Rechtsklick auf die Spaltenzeile -> und die Spalte "Aufnahmedatum" hinzufügen und die Bilder danach sortieren (die älteste Aufnahme steht logischerweiße ganz oben)
  • Strg+A drücken (wenn vorher in der Liste herumgeklickt wurde, ist ggf. das falsche Bild als "Erstbild" markiert und somit auch das erste in der Liste, bitte überprüfen, da die Liste sonst nicht stimmt!
  • auf "Hinzufügen" klicken (habe ich des Öfteren mal vergessen ^^)
  • Starten (und los gehts)

    Wer alles richtig gemacht hat, hat nun seine Bilder in einem Ordner alle wie gewünscht benannt und sogar in der korrekten Reihenfolge.

    ACHTUNG: Voraussetzung dafür ist natürlich, das an der Digicam das Datum und die Uhrzeit korrekt gesetzt wurden, da sonst die zu verwertenden EXIF-Informationen nicht stimmen, darauf also unbedingt hinweißen!

    Wer dennoch das Problem "falsches Aufnahmedatum in den EXIF-Informationen" hat, dem sei gesagt: auch dafür gibt es eine Lösung, die werde ich in den nächsten Tagen hier posten.

    So far

    Snaker