如何更改EXIF方向标签(最好使用PythonMagick)?

2 投票
1 回答
2480 浏览
提问于 2025-04-17 10:01

我正在用PythonMagick对一些JPEG图片进行缩放和旋转。理想情况下,我还想更新EXIF的方向标签。不过,虽然我可以获取这个标签的值,但似乎无法修改它。来看这个例子:

from PythonMagick import Image

i = Image("image.jpg")
print i.attribute("EXIF:Orientation")
i.attribute("EXIF:Orientation", "5")
i.write("image-modified.jpg")

运行这个代码可以显示你图片的原始方向:

exarkun@top:/tmp$ python broken.py 
6
exarkun@top:/tmp$

只要原来的方向不是5,使用exiftool可以证明新文件的方向没有被调整:

exarkun@top:/tmp$ exiftool image.jpg | grep Orient
Orientation                     : Rotate 90 CW
exarkun@top:/tmp$ exiftool image-modified.jpg | grep Orient
Orientation                     : Rotate 90 CW
exarkun@top:/tmp$ 

为什么ImageMagick不更新修改后的方向呢?我该怎么做才能让它更新呢?

1 个回答

1

这个问题和这个链接提到的内容很相似:Python的Exif处理库

另外,还可以看看这个链接:使用pyexiv2从一张图片复制和写入EXIF信息到另一张图片

上面提到的内容是使用pyexiv2来读取和写入EXIF数据。我知道这不是用PythonMagick,但它是一个“高级”的Python库,用来写EXIF数据。到目前为止,我觉得这是最好的(可能也是唯一的)解决方案。

看起来ImageMagick也能做到,所以也许有人可以在这里详细说明一下如何从Python中实现;可以参考这个链接:我该如何给图片添加EXIF数据?

撰写回答