我有一个图像,其中包含一些属性,我可以在资源管理器的属性对话框中看到:
但是当我尝试使用MSDN here
上列出的属性信息检索它们时var propItem = image.GetPropertyItem(0x010F); // PropertyTagEquipMake = 0x010F
var equipmentMake = Encoding.ASCII.GetString(propItem.Value);
propItem = image.GetPropertyItem(0x0110); // PropertyTagEquipModel = 0x0110
var equipmentModel = Encoding.ASCII.GetString(propItem.Value);
我通常会返回两个值,但是对于某些文件我得到了回复,但搜索模型返回ArgumentException
属性无法找到。
迭代图像上的属性,如下所示:
foreach (var prop in image.PropertyItems)
{
Console.WriteLine("{0}\t:\t{1}\t:\t{2}\t:\t{3}", prop.Id, prop.Len, prop.Type, Encoding.UTF8.GetString(prop.Value));
}
(基于this文章)
显示我的图像确实缺少模型属性。
是什么给出的?元数据是否以我应该寻找的其他格式存储?
答案 0 :(得分:1)
可能是这个文件中的相机型号不是作为exif存储,而是作为xmp或特定相机标签之类的其他标签存储。例如,您可以在http://regex.info/exif.cgi上查看此内容。
在这种情况下,我可以推荐Phil Harvey(http://www.sno.phy.queensu.ca/~phil/exiftool/)出色的ExifTool。
答案 1 :(得分:0)
您可以尝试使用MetadataExtractor库。它支持许多不同类型的元数据(Exif,IPTC,JFIF,XMP ......)以及多种图像和视频格式。
可在NuGet上使用。
如果您可以分享您的图片,我可以帮助您进一步诊断此问题。