modify image and save with exif data

J

jwe.van.dijk

I want to resize an image but retain the exif data
I now have:
import Image

img = Image.open('photo.jpg')
img.thumbnail((800, 800), Image.ANTIALIAS)
img.save('photo800.jpg', 'JPEG')

The saved image photo800.jpg has no exif info anymore.
I would so much like to have it retained in particular the exposure and gps data.

I use Python 2.7 with PIL 1.17 on Ubuntu 12.04
For exif reading/writing I use pyexiv2 0.3.2 but apparently you cannot add tags to an image that has none; only modifying existing ones seems to work.

Thanks for any helpful suggestions,
Janwillem
 
V

Vincent Vande Vyvre

Le 16/12/12 20:43, (e-mail address removed) a écrit :
I want to resize an image but retain the exif data
I now have:
import Image

img = Image.open('photo.jpg')
img.thumbnail((800, 800), Image.ANTIALIAS)
img.save('photo800.jpg', 'JPEG')

The saved image photo800.jpg has no exif info anymore.
I would so much like to have it retained in particular the exposure and gps data.

I use Python 2.7 with PIL 1.17 on Ubuntu 12.04
For exif reading/writing I use pyexiv2 0.3.2 but apparently you cannot add tags to an image that has none; only modifying existing ones seems to work.

Thanks for any helpful suggestions,
Janwillem
Hi,

If a tag is not already set you can create it with pyexiv2.

Example:
----------------------------------------------------------------------
self.data = pyexiv2.ImageMetadata(img.jpg)
self.data.read()

tag = "Exif.Image.ImageWidth"
try:
self.data[tag].value = sizes[0]
except:
self.data[tag] = pyexiv2.ExifTag(tag, sizes[0])
 
J

jwe.van.dijk

I want to resize an image but retain the exif data

I now have:

import Image



img = Image.open('photo.jpg')

img.thumbnail((800, 800), Image.ANTIALIAS)

img.save('photo800.jpg', 'JPEG')



The saved image photo800.jpg has no exif info anymore.

I would so much like to have it retained in particular the exposure and gps data.



I use Python 2.7 with PIL 1.17 on Ubuntu 12.04

For exif reading/writing I use pyexiv2 0.3.2 but apparently you cannot add tags to an image that has none; only modifying existing ones seems to work.



Thanks for any helpful suggestions,

Janwillem

Thanks Vincent,
I tried that but without try-except. I should have done and with also a try except in your except it works. It appears that the failure is in a few Nikon tags that apparently can be read but not set.

Setting Exif.Nikon3.0x002d failed, <class 'pyexiv2.utils.NotifyingList'>
Setting Exif.Nikon3.0x009d failed, <type 'int'>
Setting Exif.Nikon3.ExposureTuning failed, <type 'str'>
Setting Exif.Nikon3.Preview failed, <type 'long'>

Not important so I am happy with your tip.
Janwillem
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,020
Latest member
GenesisGai

Latest Threads

Top