用Python读取图像XMP数据

2024-04-28 02:16:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我可以用PIL吗,比如在this example

我只需要阅读数据,我正在寻找最简单的方法来完成它(我无法安装pyexiv)。

编辑:我不想相信唯一的方法是使用一些需要Exempi和Boost的库(python-xmp-toolkitpyexiv2,…)。一定还有别的选择!


Tags: 数据方法编辑pilexamplethistoolkitboost
3条回答

我也有兴趣知道是否有一个'适当的'简单的方法来做这件事。

同时,我在PyAVM中实现了使用纯Python读取XMP包。相关代码是here。也许这对你有用?

嗯,我在寻找类似的东西,然后遇到了PHP equivalent问题,我把anwer翻译成了Python:

f = 'example.jpg'
fd = open(f)
d= fd.read()
xmp_start = d.find('<x:xmpmeta')
xmp_end = d.find('</x:xmpmeta')
xmp_str = d[xmp_start:xmp_end+12]
print(xmp_str)

然后可以转换xmp_str并用XML API解析它。

XMP元数据可以在applist中找到。

from PIL import Image
with Image.open(filename) as im:
    for segment, content in im.applist:
        marker, body = content.split('\x00', 1)
        if segment == 'APP1' and marker == 'http://ns.adobe.com/xap/1.0/':
            # parse the XML string with any method you like
            print body

相关问题 更多 >