首页 > 解决方案 > Python-在图像保存/覆盖时同时保留地理编码和方向

问题描述

我正在使用 PIL 来增强我的图像。在保存时,我需要将地理坐标和方向角写入增强图像的标题。到目前为止,我还没有找到一种写方位角的方法。

在 resize(create thumbnail) 读取 Preserve exif data of image with PIL后,我可以使用 piexif 编写坐标。但这似乎还不足以编写方向,或者我可能遗漏了一些东西。

    im = Image.open(direc + '\\' + filename)
    exif_dict = piexif.load(im.info["exif"])
    exif_bytes = piexif.dump(exif_dict)

    enhancer = ImageEnhance.Brightness(im)
    enhanced_im = enhancer.enhance(1.8)
    enhanced_im.save(s + 'enhanced\\' + directory + "\e_" + filename, "JPEG", exif=exif_bytes)

当我打印我的 exif_dict 时,我看到两个主键 0th 和 Exif (每个键下都有合理的键值对和很多 \x00\x00\x00q\x00\x00\x00g\x00\x00\x00r\x00\x00 \x00l\x00\x00\x0...这样的字符,即使在字典的括号结束后仍然存在。请指教。

标签: pythonpython-imaging-libraryorientationgeocode

解决方案


您可以为每个图像编写一个世界文件:https ://en.wikipedia.org/wiki/World_file

创建一个文本文件,计算值,将它们写入文本文件并将相应的扩展名添加到文件名中。

编辑:如果您需要更改 exif 值,我建议您查看 exif 数据中已经存在的标签并更改/添加方向标签(如何在 python 中修改 EXIF 数据)。如果你在 google 上搜索 exif 方向标签,你可以找到值的解释。它们也在此页面https://sno.phy.queensu.ca/~phil/exiftool/TagNames/EXIF.html上进行了解释。此页面还解释了如何更改方向https://magnushoff.com/jpeg-orientation.html

希望它有所帮助。


推荐阅读