如何在python中修改EXIF数据

时间:2017-06-19 17:02:37

标签: python metadata python-imaging-library exif

我正在尝试编辑/修改python 2.7中的现有元数据。更具体地说,我的metedata中有GPS坐标,但海拔高度不正确。有没有办法改变这个?

我查看了PIL piexif pyexif,但我似乎无法找到修改现有字段的方法。

有没有人设法做到这一点?这听起来很简单,但我似乎无法解决这个问题。

干杯 戴夫

2 个答案:

答案 0 :(得分:9)

import piexif
from PIL import Image

img = Image.open(fname)
exif_dict = piexif.load(img.info['exif'])

altitude = exif_dict['GPS'][piexif.GPSIFD.GPSAltitude]
print(altitude)

(550,1)%有些值以小数格式保存。这意味着550米,(51,2)将是25,5米。

exif_dict['GPS'][piexif.GPSIFD.GPSAltitude] = (140, 1)

这将海拔设置为140米

exif_bytes = piexif.dump(exif_dict)
img.save('_%s' % fname, "jpeg", exif=exif_bytes)

答案 1 :(得分:0)

最新答案,但是您可以使用GPSPhoto,即:

from GPSPhoto import gpsphoto
photo = gpsphoto.GPSPhoto("photo.jpg")

# Create GPSInfo Data Object
# info = gpsphoto.GPSInfo((38.71615498471598, -9.148730635643007))
# info = gpsphoto.GPSInfo((38.71615498471598, -9.148730635643007), timeStamp='2018:12:25 01:59:05')'''
info = gpsphoto.GPSInfo((38.71615498471598, -9.148730635643007), alt=83, timeStamp='2018:12:25 01:59:05')

# Modify GPS Data
photo.modGPSData(info, 'new_photo.jpg')

安装:

pip install GPSPhoto