JFIF in iPhoto

EXIF is a specification for digital camera files that allows them to store information in the photo, like when the picture was taken and if the flash was used. Before the EXIF standard, early digital cameras (circa 1996) would use a JPEG header extension known as JFIF to do something similar. My understanding is that this was not standardized.

Here is the Wikipedia article on the JPEG, which mentions JFIF.

Epson PhotoPC

Older photos I took with my Epson PhotoPC do not have EXIF information in them, and the camera import software back then defaulted to a DOS-style naming convention of MMDD_NUM.JPG. (MM was the month, DD was the day, then a three digit incrementing counter. I guess they never expected someone to take more than 999 images in a day, which was difficult since the PhotoPC could only store up to 99 images before you had to download using a slow serial cable connection. But I digress…)

Because of this naming limitation, looking at a file like “0503_001.JPG” doesn’t tell you the year it was taken. Over the years, I accumulated thousands of photos taken in May, and when they are imported in to modern software like iPhoto (which supports EXIF, but does NOT see the embedded JFIF codes), the pictures all get lumped together on the date the file was last modified. (In the included screen shot, a photo I have from June 11th 1997 shows up on August 21 2001 since, I guess, that’s the last time I did any copying of these images files or something.)

To make matters worse, many of my photos got renamed to things like “DL0004.JPG” (a batch of photos from Disneyland) with no indication of the month or date. Good luck!

The problem is that modern software, such as Apple’s iPhoto or Lemkesoft’s GraphicConverter do not look at JFIF information (nor should they, since we now have the EXIF standard to support). What is needed is a way to convert files with JFIF information into files with EXIF headers.

If you have an image without any EXIF data, GraphicConverter and iPhoto will let you modify the date and embed an EXIF header. This is required for any photos that were scanned (thus no EXIF or JFIF), or maybe had JFIF/EXIF but were manipulated with older graphics programs that did not honor it and thus destroyed it. (Any photo I rotated, for instance, lost any JFIF information, so I have thousands and thousands of photos with absolutely no indication of when they were taken inside the files.)

Nothing but manual editing can be done about files with neither JFIF or EXIF data, but for the old pics that at least have JFIF I have found a few steps, using a few programs, that will get all my old non-EXIF images converted to images with EXIF. The EXIF data will either be the correct information brought over from JFIF headers, or it will be some bogus information based on a file timestamp or whatever. In that case, manual editing is the only thing you can do.

Here is what I posted to the GCMAC (GraphicConverter) Yahoo! mailing list today documenting my steps, and it ties in to my previous post.

  1. Use EXIFrenamer to set the “Creation Date” of all my files to whatever JFIF information it can find. Some files contain none, so the creation data will be left unchanged (whatever date I copied the files over originally, I guess). Some files have bogus JFIF dates set to 1969 or other weird years.
  2. I will use GraphicConverter’s “JPEG -> Set EXIF Date to File Creation Date” option to recurse through all my files. Now each JPG will contain either a valid EXIF (along with a valid JFIF?), EXIFs with bogus dates brought over from the JFIF, and EXIFs that are just whatever file system timestamp unknown files were given. To verify, I drag the entire batch over in Mac OS X’s “Preview” app and open up the Inspector (Tools -> Inspector, or Apple-I). I switch to the center “! in a talk balloon” icon tab where I should see: “General | JFIF | Exif | TIFF” I quickly page through my images making sure all have EXIF sections now, valid or otherwise.
  3. I import these images into iPhoto, which now can rely on the EXIF tag instead of some filesystem date.

I just tested these three steps “fresh” and imported them into an empty iPhoto Library. It seems to have worked!

Now I have three smart albums, one for 1997, one for 1998, and one for 1999 photos, then I created one called “Before 1997” and one called “After 1999” which will contain the photos I need to manually adjust.

I hope this information helps someone else! Contact me if you have any questions. I’d be happy to help.

Leave a Reply