7

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

4

2 回答 2

14

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

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

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")

另请参阅:python 的 Exif 操作库

于 2012-12-26T21:11:11.973 回答
5

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

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

于 2013-08-28T20:53:16.497 回答