I ran into big problem yesterday night.
I took out my old digital camera, and started using it without setting current date and time.
All photos clicked now have date as Jan 01, 2009
I want to change the date and time (and other EXIF image meta-data) of multiple images.
Please recommend some software which can process multiple images in single click/go.
As you already have a GUI solution, I thought I would mention that there are also several ways of changing EXIF data on the command-line; two useful tools are
exiftool
andjhead
, which can be installed with this command:With both of these tools you can operate upon multiple files at once, but you may want to back your files up before you start manipulating the exif data.
jhead
To change the time and date EXIF data on a number of files 'in a single click', you could open terminal and do
cd
to the folder with the pictures and run:The
-ts
switch allows you to specify the date and time required and write it to the exif header all in one go: the format specified here isYYYY:MM:DD-HH:MM:SS
.If you just wanted to change the date without specifying the time, you would use instead:
You could also do it just for one some pictures taken with a particular camera if you specified, for example,
-model "D70"
, but that option must come first in the processing, and must be something like "D70", "S100" and not "Nikon D70". Look at the exif readout from your pictures to get the correct model number.For more information, see
man jhead
.exiftool
This utility has more options than jhead and is very comprehensive, as noted at the official site. There is a graphical frontend for exiftool in development, but it is in the early stages at the moment, but looks promising.
The date and time shifting options, and which formats can be used are quite extensive, as detailed here in this useful pdf. As with jhead, you can decide to change time and date, or just date. This example changes both date and time:
The example above just sets a particular value for the date and times of the pictures; if you wanted to just shift them all by a certain time index, such as the three years forward, you could use:
The shifting feature can be very useful if, as has happened to you, your pictures are all suddenly marked 2009, even though they were taken in 2012. Make sure you use a plus or minus sign before the equals (as in
-AllDates-=
or-AllDates+=
), depending on what you want to achieve when you assign your required time index, or the resulting EXIF data will not be as expected.exiftool
will create a backup of the original before editing the EXIF data adding original at the end of the filename.exiftool
supports more image types thanjhead
which only works for JPEGs.For more information, see
man exiftool
.Changing the date and time are easy in Shotwell. Select the photos you want to adjust and go to the menu like this:
Select Photos/Adjust date and time. That brings up a menu like this:
If all the photos are off by the same amount, you can do them all in one go. If you used more than one camera and they were off by different amounts, you have to divide them and do each batch separately.
Shotwell's help page explaining this is here.
This question asked for EXIF, but image metadata has at least three standards that can be attached to images, EXIF, XMP, and IPTC. Many photo programs will write to all of these formats, but not all, so it's important to check all of them.
I've found that
exif
is a good tool, but thatexiv2
is better. Compareexif
:To
exiv2
:The big difference here being that the keywords in XMP and IPTC aren't in EXIF at all and so if I only looked there, I'd think it didn't have keywords.
I gave the command
exiv2 -p a my-image.jpg
because that displays all three forms of metadata. Leaving out-p a
will just show you the EXIF data.