python - 在不改变图片的情况下更改 JPEG 上的 EXIF 数据

标签 python image python-imaging-library jpeg

我使用 piexif 更改 jpeg 上的 exif 以读取和写入 exif 数据,这似乎工作正常。问题是当我读写 jpeg 时,即使我不更改字节,它也会保存具有不同像素的图片和读取的图片。我需要它是完全相同的像素。我知道这是因为 jpeg 是一种有损格式,但我找到的唯一方法是将其保存为 png,然后使用 Mac 预览将其导出为 jpeg,这不好,因为我有数百张图片.

def adjust_img(path):
   img = PIL.Image.open(path)
   exif_dict = piexif.load(img.info['exif'])
   new_exif = adjust_exif(exif_dict)
   exif_bytes = piexif.dump(new_exif)
   pc = path.split('/')
   stem = '/'.join(pc[:-1])
   img.save('%s/_%s' % (stem,pc[-1]), "JPEG", exif=exif_bytes, quality=95, optimize=False)

我怎样才能保留图片并只修改 exif?

最佳答案

https://piexif.readthedocs.io/en/latest/functions.html

exif_dict = piexif.load(path)
new_exif = adjust_exif(exif_dict)
exif_bytes = piexif.dump(new_exif)
piexif.insert(exif_bytes, path)

关于python - 在不改变图片的情况下更改 JPEG 上的 EXIF 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53543549/

相关文章:

python - 裁剪图像 - Image.crop 功能不起作用

python - PIL海报化-修复绿色像素

python - Numpy 数组转 PIL 图片格式

python - 解码 UTF-16 编码的十六进制字符的字符串

python - 使用 ctypes 将指针传递给 dll 函数

java - 如何在 JSP 页面中检索并显示数据库中的图像?

javascript - 动态模式下的lightGallery : incorrect image is loading when clicked

java - 如何在 .jar 中包含和访问图像

python - 使用 Float64Index 时如何移动 DataFrame 的索引?

python - CSV 数据到 Numpy 结构化数组?