[Image-SIG] Copying EXIF data from one file or PIL image to another?

Terry Carroll carroll at tjc.com
Mon Jun 6 02:46:46 CEST 2005


On Sun, 5 Jun 2005, Richard Townsend wrote:

> Not sure about PIL, but Gene Cash has a Python module for handling EXIF 
> data:
> 
> http://home.cfl.rr.com/genecash/digital_camera.html

Thanks, Richard.  I'm already using that -- that's how I'm getting the 
EXIF data -- but it's read-only, there's no way to take its data and write 
to another JPEG file.

On Sun, 5 Jun 2005, Paul Moore wrote:

> You can *read* EXIF information via the _getexif() method of the
> image....

> [example snipped]

> Unfortunately, I don't know of a way to *write* EXIF information with
> PIL.

Yeah, that's what it looks like to me.  I tried 

     im0.app = im.app

where im is the source image amd im0 is my destination image; that adds 
the appropriate EXIF data to the PIL Image object, but it doesn't get 
written out to the file when I do an im0.save().

This is still helpful information, though.  I had no idea that PIL
supported EXIF, and I'd rather use PIL's support than load in Gene Cash's
module: one less dependancy.

On Sun, 5 Jun 2005, Max Erickson wrote:

> Jhead should be able to transfer the exif information:
> http://www.sentex.net/~mwandel/jhead/
>
> Alternatively, see:
> http://mail.python.org/pipermail/image-sig/2004-September/002931.html
> for a patch that adds support for writing raw exif headers to pil.

Thanks.  I think I'll go with JHead.  This program is mostly for personal 
use, but I may have one or two friends who may find it useful, too.  I can 
put in a "Preserve EXIF (requires JHEAD)" checkbox, so that it's useful 
w/o it.  It's probably easier to copy JHead along with my program than it 
is to patch PIL.

Thanks to all responses.



More information about the Image-SIG mailing list