首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中保存图像的IPTC元数据

如何在python中保存图像的IPTC元数据
EN

Stack Overflow用户
提问于 2022-01-14 05:37:16
回答 1查看 474关注 0票数 0

当我试图使用PIL调整图像大小(缩略图)时,iptc数据将丢失。

我要做什么来保存缩略图中的iptc数据?

我在枕头库中看到了对IptcImagePlugin的支持,但这只是用于读取图像的iptc数据。如何在图像丢失后将iptc数据写入图像?

EN

回答 1

Stack Overflow用户

发布于 2022-01-14 08:56:10

也许可以做更多的工作,但您可以使用exiftoolImageMagick提取并插入IPTC数据。

这意味着您应该能够使用exiftool使用Python实现它,方法是修改我的答案这里。或者使用魔棒,它是ImageMagick的Python绑定。如果做不到这一点,我想您可以使用Python模块。

使用exiftool,将IPTC数据从original.jpg复制到new.jpg

代码语言:javascript
复制
exiftool -tagsfromfile original.jpg -IPTC:all new.jpg

在Python中,应该是这样的(未经测试):

代码语言:javascript
复制
import exiftool

# If  "exiftool" is not on your PATH, add the full path inside parentheses on next line
with exiftool.ExifTool() as et:
   et.execute(b"-tagsfromfile original.jpg -IPTC:all", b"new.jpg")

另一种方法是将IPTC数据提取到文件中,然后将这些值修补到您的PIL创建的缩略图中:

代码语言:javascript
复制
exiftool original.jpg -b -IPTC > saved.iptc
exiftool '-IPTC<=saved.iptc' new.jpg

使用ImageMagick,解压缩IPTC文件extracted.iptc

代码语言:javascript
复制
magick original.jpg extracted.iptc

现在插入到new.jpg

代码语言:javascript
复制
magick new.jpg -profile extracted.iptc withprofile.jpg

或者,将IPTC从original.jpg复制到new.jpg中,生成与上面相同的result.jpg,但一举没有创建临时文件并依赖bash外壳“进程替换”。

代码语言:javascript
复制
magick new.jpg -profile <(magick original.jpg iptc:-) result.jpg
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70706419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档