使用 metadata-extractor-dotnet 提取 Microsoft 照片 XMP 人物标签

问题描述

我正在尝试使用带有 C# 的 Metadata-extractor-dotnet 从 JEPG 文件中读取 Microsoft 照片 XMP 人物标签名称和矩形)。到目前为止,我只能使用某种hacky代码提取人名。我想知道是否有更简洁的方法

背景 1:我正在尝试读取这些 XMP 元数据值:https://exiftool.org/TagNames/Microsoft.html -> Microsoft MP 标签 -> RegionPersondisplayName & RegionRectangle

背景 2:当使用 Metadata-extractor-dotnet (xmpDirectory.XmpMeta.Properties) 迭代 JPEG 中的 XML 值时,我看到以下值:

我的工作和提取人名的hacky代码如下所示:

var array1 = GetXmpArrayOrNull(XmpDirectory?.XmpMeta,"http://ns.microsoft.com/photo/1.2/","MP:regioninfo/MPRI:Regions");
if (array1 != null)
{
    return array1
        .Select((_,i) => XmpDirectory?.XmpMeta?.GetProperty("http://ns.microsoft.com/photo/1.2/",$"MP:regioninfo/MPRI:Regions[{i + 1}]/MPReg:PersondisplayName")?.Value)
        .Where(s => !string.IsNullOrEmpty(s))
        .ToList()
}

在我的代码中,array1 数组似乎没有保存任何可用数据。所以我只用它的存在作为一个指标,表明在不同的查询下有更多的数据可用。

知道如何直接获取一个“东西”数组,我可以直接访问 PersondisplayName 和 Rectangle 吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...