我从图像中获取图像创建日期。我注意到有些图像会导致Property cannot be found.
错误,而相同的代码会对其他图像起作用。
对于前者, 我已经在大约40个图像上测试了我的代码,我没有发现任何问题,但现在我在不同的图像集上测试相同的代码,所有这些图像都抛出了这个错误。
代码:
private DateTime GetDateTakenFromImage(string path)
{
using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read))
using (Image myImage = Image.FromStream(fs, false, false))
{
PropertyItem propItem = myImage.GetPropertyItem(36867);//Throws error here
string dateTaken = new Regex(":").Replace(Encoding.UTF8.GetString(propItem.Value), "-", 2);
return DateTime.Parse(dateTaken);
}
}
我已经检查了工作和非工作图像的图像属性,但我没有看到任何区别。
我在这里缺少什么?
答案 0 :(得分:1)
该物业并不总是存在。首先检查以下内容:
if (myImage.PropertyIdList.Any(p => p == 36867))