问题描述
我正在尝试使用带有 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 值时,我看到以下值:
- Path=MP:regioninfo,Value='',namespace=http://ns.microsoft.com/photo/1.2/
- Path=MP:regioninfo/MPRI:Regions,namespace=http://ns.microsoft.com/photo/1.2/t/regioninfo#
- Path=MP:regioninfo/MPRI:Regions[1],namespace=''
- Path=MP:regioninfo/MPRI:Regions[1]/MPReg:Rectangle,值=0.297101、0.283765、0.164855、0.248295,命名空间:http://ns.microsoft.com/photo/1.2/t/Region#
- Path=MP:regioninfo/MPRI:Regions[1]/MPReg:PersondisplayName,Value='Peter Mueller',namespace=http://ns.microsoft.com/photo/1.2/t/Region#
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 (将#修改为@)