While my Windows Mobile phone is fantastic at synchronizing data with my PC and operating seamlessly with Exchange, it does lack in some of the non-business areas. Most frustrating for me lately: no EXIF information on the pictures it takes.
What is EXIF data and why does it matter? EXIF (Exchangeable image file format) is a standard that specifies, among other things, the metadata tags included in image files. The key bit of metadata that my camera pictures lack is the date and time I took the pictures. The pictures do have a date & time they were modified, but not having a separate entry for when the picture was taken leads to the date information being lost when the pictures is edited or copied to another PC. As a result, I have a lot of pictures from my camera phone like the example below, created in 2009, modified in 2007 and I have no clue if I took the picture on either of the dates… or some completely different date and time.
(Oh, by the way, iPhone owners, this is one more thing you can use to taunt your non-iPhone owning friends about: the iPhone adds EXIF data to the pictures.)
While I may have lost the historical data I haven’t given up on my future pictures. I’m now using an excellent app from Phil Harvey, ExifTool. This powerful command line app allows me to preserve the date taken by copying the modified date to the date taken. In the process of adding the date taken I am also adding extra info to indicate what phone I used and correcting the time taken since my pictures are all date stamped in GMT (no, I don’t know why, I’ve stopped being surprised by stuff like this).
Downloading and installing ExifTool
ExifTool is Perl based and will work on Unix, Windows or Mac OS X, your install steps will depend on your platform. From the ExifTool home page you can pick the version you want, Windows and Mac users will want to get the platform-specific version for simplicity. The Windows executable is a single file "install." Unzip the download and you have an EXE file, there is no installation or required dll’s. Clean & simple (monolithic is good, right Jud?).
Creating and/or changing the date taken
Once you have ExifTool, creating date taken info based off the file’s modified date is a simple command line operation.
- Open up a command window. If you’re using Windows, bring up the command line by clicking the start menu and typing "cmd" (for Vista or Windows 7) or selecting run then typing "cmd" (for XP).
- Change directories to the location you saved ExifTool (e.g. if it’s in your documents folder, type "CD C:\Users\ME\Documents\ExifToolFolder").
- Create a date taken by coping it from date modified like this (you’ll need to specify the path to your picture):
exiftool.exe -"filemodifydate>datetimeoriginal" c:\Users\Me\Pictures\picture.jpg
Straight forward enough, no?
(Almost) unlimited power
Now that you have the basic info you can go crazy. Unlike the EXIF editing capbilities of most photo software (like PhotoShop or Windows Live Gallery) ExifTool allows you to create/edit fields like the camera’s manufacturer.
- ExifTool can make changes to an entire directory of files by replacing the path to a picture with a folder path (e.g. exiftool.exe -"filemodifydate>datetimeoriginal" c:\Users\Me\Pictures\).
- You can make relative date changes to files with -datetimeoriginal. For example, I need to take 7 hours off the time for all my pictures with -DateTimeOriginal-=7. You can also make changes in years, months and days if your camera clock was reset by mistake .
- You can move files with the directory parameter, allowing you to move files from a temp directory after they’ve been corrected .
- Since this is a command line tool it’s really easy to create a batch file to make a whole list of changes .
- Get plug-ins to use ExifTool from inside your some of your favorite apps like Photoshop or Lightroom.
To help make the process auto-magic for myself I’ve created a batch file which creates the datetimeoriginal data, adds the camera model and maker, corrects the time taken and, finally, copies the pictures from the staging folder to their final location. I have this batch file set to run periodically using a scheduled task. Now I just need to learn to have the scheduled task be triggered by new photos showing in the staging folder. 🙂