在Python中读取图像XMP数据

dol*_*a33 18 python xmp image python-imaging-library

我可以像这个例子一样使用PIL 吗?

我只需要读取数据,我正在寻找最简单的方法(我无法安装pyexiv).

编辑:我不想相信这样做的唯一方法是使用一些需要Exempi和Boost的库(python-xmp-toolkit,pyexiv2,...).必须有另一种选择!

dir*_*000 11

好吧,我正在寻找类似的东西,然后我遇到了PHP等价的问题,我将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)
Run Code Online (Sandbox Code Playgroud)

然后,您可以转换xmp_str并使用XML API解析它.

  • 我必须用“rb”打开并查找(b'&lt;x:xmpmeta')和查找('b&lt;/'x:xmpmeta')。然后,它在从 DJI 无人机图像中挖掘重要元数据方面创造了奇迹。 (6认同)

Cod*_*ist 8

可以在中找到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
Run Code Online (Sandbox Code Playgroud)


ast*_*rog 3

我也有兴趣知道是否有一种“适当”的简单方法可以做到这一点。

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