我正在编写一个开源库来提取图像元数据并将其存储为 XML sidecar 中序列化的 XMP(理想情况下与 Adobe 应用程序序列化其元数据的方式相同)。
我的问题是 BitmapMetadata 似乎具有我需要的所有值,但键已损坏。其中许多只是整数,而不是相应的 XMP 命名空间 XML 样式名称。 Microsoft 声称他们正在使用 XMP 来存储 读取/写入媒体中许多不同格式的元数据,但我没有看到任何方法可以从这些元数据中重建一些标准 XMP 名称.
例如,名称= "/{ushort=272}"
,格式="ifd"
是我所拥有的,但我需要的是 <tiff:Model>
哪里xmlns:tiff="http://ns.adobe.com/tiff/1.0/"
。为此,我可以使用我的 ExifUtils library 中的 ExifTags映射一些键,因为我知道它是什么。但我不确定其他许多人的情况。
我的问题:
任何熟悉 BitmapMetadata 的人都知道我是否走进了死胡同吗?
Microsoft 是否有编码的标准化映射?我在 Adobe's official XMP specs 中还没有找到一个.
更新:该库的开源代码现已在 Google Code 上提供,代码为 XmpUtils library 。它支持读取/写入 XMP 元数据作为标准的基于 RDF 的 XML。
最佳答案
我似乎偶然发现了 page 18 in Part 3 of the XMP spec 上的按键映射。看起来 BitmapMetadata
只是公开 JPEG 编码的 XMP 数据部分:
The marker types FFE0-FFEF are generally used for application data, named APPn. By convention, an APPn marker begins with a string identifying the usage, called a namespace or signature string. An APP1 marker identifies Exif and TIFF metadata; an APP13 marker designates a Photoshop Image Resource (PSIR) that contains IPTC metadata; another APP1 marker designates the location of the XMP packet.
不确定最终列表来自哪里,因为这似乎不完整。
更新:
我刚刚偶然发现an MSDN set of pages ("Photo Metadata Policy")其中链接到其支持的每个属性的相当全面的 Microsoft 元数据查询语言路径列表(左侧)。这是一种绝对可怕的格式,每页一个路径,但它似乎包含了我需要的大量数据。不幸的是,JPEG 和 TIFF 似乎有不同的路径...
更新:
此页也是关键,因为它定义了类似 XPath 的语法的疯狂之处:Metadata Query Language Overview
关于c# - 如何将 BitmapMetadata 键转换为相应的 XMP 名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2095228/