How to get/edit EXIF meta-data of multiple images?

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.


Solution 1:

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 and jhead, which can be installed with this command:

sudo apt-get install libimage-exiftool-perl jhead

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:

jhead -ts2012:10:29-10:28:03 *.jpg

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 is YYYY:MM:DD-HH:MM:SS.

If you just wanted to change the date without specifying the time, you would use instead:

jhead -ds2012:10:29 *.jpg

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.

jhead -model "D70" -ts2012:10:29-10:28:03 *.jpg

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:

exiftool -AllDates="2012:03:14 12:25:00" *.jpg

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:

exiftool -AllDates+="3:0:0 0" *.jpg

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 than jhead which only works for JPEGs.

For more information, see man exiftool.

Solution 2:

Changing the date and time are easy in Shotwell. Select the photos you want to adjust and go to the menu like this:

shotwell menu

Select Photos/Adjust date and time. That brings up a menu like this:

time date adjust

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.