首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XMP图像标记与Python

XMP图像标记与Python
EN

Stack Overflow用户
提问于 2009-02-01 16:28:14
回答 5查看 4.5K关注 0票数 5

如果我要用Python通过XMP标记一堆图像,那么最好的方法是什么?我使用了Perl的Image::ExifTool,并且非常习惯于它的可靠性。我的意思是,这东西从来没有在成千上万的图像上砖块。

我发现了,得到了欧洲航天局( European )等一些重量级打击者的支持,但它显然是不稳定的。

现在,假设我对C++很满意,那么用Python直接使用Adobe工具包有多容易呢?我以前从来没有这样做过,所以我不确定我会注册什么。

更新:我尝试了一些库,包括前面提到的工具包,它们仍然非常不成熟,并且存在明显的问题。实际上,我需要编写一个基于Perl的服务器,该服务器接受XML请求来读取和写入元数据,并使用经过战斗测试的Image::EXIF。代码的数量实际上是非常轻的,并且肯定比试图让Python库正常工作来折磨自己要好。服务器解决方案与语言无关,所以它是双重的。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-02-01 16:44:56

嗯,他们的网站说python工具箱通过ctype使用Exempi,Exempi是基于Adobe工具包的。我想说的是,您不太可能自己创建更好的C++代码包装。如果它不稳定(即buggy),那么创建补丁可能比自己从头开始做更便宜。

然而,在您的特殊情况下,这取决于您需要多少功能。如果您只需要一个函数,那么将C++代码封装到一个小的C扩展库或使用Cython是可行的。当您需要拥有所有的功能和灵活性时,您必须手动创建包装或使用SWIG,基本上重复其他人已经完成的工作。

票数 4
EN

Stack Overflow用户

发布于 2010-09-13 07:52:36

我与python工具箱斗争了几个小时,最终放弃了对ExifTool的调用。

还有Ruby库也封装了ExifTool (尽管比我创建的要好得多);我觉得将它移植到ExifTool上是值得的,因为它是处理XMP的简单方法。

票数 4
EN

Stack Overflow用户

发布于 2017-08-05 16:58:22

对于Python3.x,有支持编辑XMP元数据的py3exiv2

使用py3exiv2,您可以读写所有标准元数据、创建自己的XMP命名空间或提取嵌入在图像文件中的缩略图。

关于py3exiv2,我喜欢的一点是它是建立在(C++) exiv2库上的,它看起来维护得很好

不过,在我的系统上安装它时,我确实遇到了一个问题(Ubuntu16.04)。为了使它正常工作,我首先必须安装libexiv2 2-dev (sudo apt-get install libexiv2-dev)的最新版本,并且只在安装py3exiv2 (sudo -H pip3 install py3exiv2)之后才安装。

下面是我如何使用py3exiv2编写一个新标记:

代码语言:javascript
复制
import pyexiv2
metadata = pyexiv2.ImageMetadata("file_name.jpg")
metadata.read()
key = "Xmp.xmp.CustomTagKey"
value = "CustomTagValue"
metadata[key] = pyexiv2.XmpTag(key, value)
metadata.write()

(文档中也有一个教程 )

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/501087

复制
相关文章

相似问题

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