【问题标题】:How to modify EXIF data in python如何在python中修改EXIF数据
【发布时间】:2021-01-30 23:33:09
【问题描述】:

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

我看过PILpiexifpyexif,但我似乎找不到修改现有字段的方法。

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

【问题讨论】:

    标签: python metadata python-imaging-library exif


    【解决方案1】:
    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) % 一些值以小数格式保存。这意味着 550m, (51, 2) 将是 25,5m。

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

    这会将高度设置为 140m

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

    【讨论】:

    • 值得说明的是,使用这种方法(特别是使用 save 功能)可能会导致图像内容的修改。如果想保持图像内容原样,那么最好使用另一种方法:link
    【解决方案2】:

    迟到的答案,但您可以使用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
    

    【讨论】:

    • 注意,这会修改图像数据。如果你想保持你的图像数据不受影响,最好使用 piexif + @abletterer's comment
    猜你喜欢
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    • 1970-01-01
    • 2023-01-25
    • 2011-06-13
    • 1970-01-01
    相关资源
    最近更新 更多