Дата экспозиции возвращается как нулевая, хотя информация Exif доступна - PullRequest
0 голосов
/ 20 апреля 2020

Я обрабатываю около 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 и теги . Буду признателен за любую помощь в этом.

...