Я обрабатываю около 10000 изображений и использую экстрактор метаданных для извлечения данных Exif. Он работает для около 7000 изображений, но не работает для остальных.
Это соответствующий код,
public static string ExposureDateTime(string fileName, string logFile)
{
string dateTime = null;
try
{
var metadatadir = ImageMetadataReader.ReadMetadata(fileName);
var subIfdDirectory = metadatadir.OfType<ExifSubIfdDirectory>().FirstOrDefault();
dateTime = subIfdDirectory?.GetDescription(ExifDirectoryBase.TagDateTimeOriginal);
}
catch (Exception e)
{
using (StreamWriter sw = new StreamWriter(logFile, true))
{
sw.WriteLine("{0}: {1}", e.Message, fileName);
}
}
return dateTime;
}
При применении точки останова к строке dateTime
значение возвращается как null
для файлов, которые терпят неудачу.
Однако, если я открою изображение с помощью собственного приложения Photos в Windows, я смогу правильно увидеть дату экспозиции в разделе «Сведения о файле».
Для файл, который не работает, это Exif каталог и теги . Для файла, который успешно выполняется, это каталог Exif и теги . Буду признателен за любую помощь в этом.