我正在使用 Windows Imaging Component 在我的 WPF 应用程序中读取/写入图像元数据。我想知道是否有一种有效的方法可以知道名称空间中是否存在任何路径。例如,我想知道 IPTC 命名空间中是否存在任何路径,如果不存在,我想从图像标题中删除命名空间。
任何指针将不胜感激。
谢谢,
穆鲁格什。
获取 IWICMetadataQueryReader 对象并使用其 GetEnumerator 方法。使用从 GetEnumerator 返回的 IEnumString 对象,调用其 Next 方法以查看是否至少存在一个元数据。如果不是,则元数据块为空。
尝试从根查询阅读器访问 IPTC 命名空间可能有点棘手:根可能将 IPTC 命名空间(元数据块)作为位于根上的单个 COM 对象,然后您需要确定类型(接口) 并进入该 COM 对象,就像探索一棵树一样。
我认为通常不可能控制 WIC不写入哪些元数据,因为只要被认为是无害的,WIC 就可以自由插入自己的内容。