【问题标题】:Exif reading libraryExif 阅读库
【发布时间】:2012-12-10 03:44:23
【问题描述】:

是否有适用于 Python 3.x 的 exif 库?似乎我遇到的每个 exif 库都仅适用于 Python 2.x。我不需要太花哨的东西。只需读取值就足够了。

【问题讨论】:

  • 这是一种作弊,但我们使用带有-json -fast -@ argfile 选项的子进程从Python 调用Phil Harvey's exiftool。它简单而完整,当您需要批量处理数千张图像时速度很快(就像我们一样)。

标签: python image python-3.x exif


【解决方案1】:

选项 1. 使用 pyexiv2。请参阅:pyexiv2 Bug #824440: Python 3 support 您需要用于 py3k 的 boost-python,并且还需要手动应用在上述错误末尾发布的补丁,但除此之外它还可以工作。在最新的 Ubuntu 下启动和运行可能最容易。

选项 2. 使用 PIL 缺点:这个分支/fork 似乎没有被积极开发。

from PIL import Image
from PIL.ExifTags import TAGS

image = Image.open("test.jpg")
exif = image._getexif()
# decode exif using TAGS

选项 3. 使用 PythonMagick

from PythonMagick import Image

img = Image("image.jpg")
print img.attribute("EXIF:Orientation")

另见:Exif manipulation library for python

【讨论】:

  • 啊。没有意识到 PIL 有一个 Python3 分支。我会试一试,然后回复你。
  • 你能在这个问题上测试一下吗,下载图片,然后尝试获取 ImageDescription。 stackoverflow.com/questions/22173902/…
【解决方案2】:

作为参考,pyexiv2 homepage 现在有一个弃用警告,它指向 Gexiv2,这是一个基于 GObject-introspection 的围绕 libexiv2 的包装器(相同的库 pyexiv2 包装器),专门用于 Python 3.x 支持。

不幸的是,在撰写本文时,Gexiv2 的安装仍然很痛苦,到目前为止,我一直无法让它在 Ubuntu Precise 上运行(看起来库已经过时了 - 可能适合我继续使用一个 LTS...),所以 PIL 仍然是在 Python 3 中读取 EXIF 标签的最佳选择。

【讨论】:

  • 您与 gexiv2 的链接似乎已失效。
  • 谢谢 - 现在应该修复
猜你喜欢
  • 1970-01-01
  • 2011-03-23
  • 2022-01-08
  • 2014-09-04
  • 1970-01-01
  • 1970-01-01
  • 2013-01-31
  • 1970-01-01
  • 2012-05-16
相关资源
最近更新 更多