【问题标题】:Resize image with Python and keep EXIF and XMP metadata使用 Python 调整图像大小并保留 EXIF 和 XMP 元数据
【发布时间】:2021-08-26 04:49:38
【问题描述】:

人们多次询问如何调整图像大小并保留现有的 exif 数据。我可以使用 PIL 轻松做到这一点:

from PIL import Image

im = Image.open("image.jpeg")
exif = im.info['exif']
# process the image, for example resize:
im_resized = im.resize((1920, 1080), resample=PIL.Image.LANCZOS)
im_resized.save("resized.jpeg", quality=70, exif=exif)

我想知道有没有办法保留原始图像中的 XMP 元数据? XMP 中有很多 GPS 数据,我希望将它们保留在调整大小的版本中。

【问题讨论】:

  • 嗨@Dusan。你在哪里能以某种方式解决这个问题?我现在遇到同样的问题
  • @craaaft - 是的,我做到了。看这里:dusan-pacal.medium.com/…

标签: python image-processing exif xmp


【解决方案1】:

甚至没有successor Pillow can read XMP (and IPTC)。此外,您并没有真正保留任何东西 - 您创建了一个全新的文件并添加了其他 EXIF 数据的副本(包括现在可能无效的信息,如宽度/高度)。

JFIF 文件不是黑魔法——它们的file format 可以很容易地被解析; XMP is most likely found in an APP1 segment(就像 EXIF)。在极少数情况下,它跨越多个段。您可以先使用 PIL/Pillow 创建文件,然后对其进行修改 - 插入额外的段很简单,不需要额外的工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-01
    • 1970-01-01
    相关资源
    最近更新 更多