Exif-Daten ändern

4. Mai 2011 · Programmierung · andreas · Kein Kommentar

Sollen Exif-Daten vorhandener Bild-Dateien geändert werden, so ist - wie so oft im adminstrativen Alltag - PERL ein hilfreiches Werkzeug.

Folgendes Skript schnappt sich alle “JPG”-Dateien im aktuellen Verzeichnis und setzt deren Aufnahmedatum auf den 01.09.2004 9:22:57 Uhr.

use strict;
use warnings;
use Image::ExifTool;

my (@files, $file, $image, $success);

opendir(DIR, '.');
@files = readdir(DIR);
closedir(DIR);

foreach $file (@files) {

 next if $file !~ /\.jpg$/i;

 print "processing file '$file'\n";

 my $image = new Image::ExifTool;

 $image->SetNewValue('DateTimeOriginal', '2004:09:01 09:22:57');
 $success = $image->WriteInfo($file, '_' . $file);

 die 'Error: \'' . $image->GetValue('Error') . '\'' if ! $success;
}

Die komplette Doku zu Image::ExifTool findet sich im CPAN. Wer mutig ist (oder ein Backup hat), kann den zweiten Parameter bei WriteInfo auch weglassen - die Quelldatei wird dann direkt überschrieben.