msgbartop
A cronological documentation test project, nothing serious, really!
msgbarbottom

05 Dec 2007 Set photo filedate and time according to EXIF info

Sometimes a image files creation date is wrong and have to be corrected. This is a script I use to set a files creation date to the photos date retrieved from EXIF tags. The exiftool program should be available to run this script.

#!/usr/bin/env perl
use strict;
$|++;

use Image::ExifTool qw(ImageInfo);

use Time::Local;

for my $file (@ARGV) {
my $ii = ImageInfo($file, qw(DateTimeOriginal DateTime))
or warn("Skipping $file\n"), next;
my ($created) =
grep /\S/, @$ii{qw(DateTimeOriginal DateTime)};
next unless $created;
warn "using $created for $file\n";
if ($created =~ s/([-+ ])(\d\d):(\d\d)$//) {
my ($sign, $hour, $minute) = ($1, $2, $3);
# warn "ignoring offset of $sign $hour:$minute\n";
}
my @digits = $created =~ /(\d+)/g or next;
if ($digits[0] < 1900) {
warn "bad year $digits[0] for $file";
next;
}
$digits[0] -= 1900;
$digits[1] -= 1;
my $gmtime = timegm(reverse @digits);
if ($gmtime > time or $gmtime < time - 86400*90) {
warn "preposterous gmtime for $file: ", scalar gmtime $gmtime;
# next;
}
utime($gmtime, $gmtime, $file) or warn "Cannot utime on $file: $!";
}

Save it as datebyexif.pl

Usage:

./datebyexif.pl *.JPG

Download the datebyexif.pl script

Source: http://www.macosxhints.com/comment.php?mode=view&cid=83366

Tags: ,

Posted by Hans-Henry Jakobsen

11 Apr 2007 Organise images using exiftool

Move all files from directory dir into directories named by the original file extensions

exiftool '-Directory<datetimeoriginal>

Rename all images in dir according to the CreateDate date and time, adding a copy number with leading ‘-’ if the file already exists (%-c), and preserving the original file extension (%e).
Note the extra ‘%’ necessary to escape the filename codes (%c and %e) in the date format string.

exiftool '-FileName

Set the filename of all JPG images in the current directory from the CreateDate and FileNumber tags, in the form “20060507_118-1861.jpg”

exiftool '-FileName< ${CreateDate}_$filenumber.jpg' -d %Y%m%d dir/*.jpg

Adjust original date/time of all images in directory dir by subtracting one hour and 30 minutes.

exiftool -DateTimeOriginal-='0:0:0 1:30:0' dir

Tags: ,

Posted by Hans-Henry Jakobsen