python - 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...这样的字符,即使在字典的括号结束后仍然存在。请指教。
解决方案
您可以为每个图像编写一个世界文件: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。
希望它有所帮助。
推荐阅读
- r - 条件均值和散点图
- r - 如何在预期时使用 testthat 将消息和警告静音
- java - Java Streams 验证是否只有一个结果
- php - 在 Woocommerce 结帐页面中显示自定义消息
- php - laravel 在给定 id 与连接表 id 不匹配时获取数据
- python - 使用 R 中的网状包,Python 输出未在 html 中显示
- javascript - 使用类扩展数据属性功能
- python - 如何修复“dash.exceptions.NoLayoutException”错误
- iphone - 如何将 iPhone LiDAR 传感器与 Web 应用程序一起使用?
- maven - JDK 11 JavaFX with Maven:无法向项目添加依赖项