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:
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.