Я записал приложение, которое считывает основные данные EXIF с изображения через PropertyItems, подвергнутый в Системе .NET. Рисование. Класс изображения. Однако я не могу получить Canon определенные данные EXIF через эти свойства. Как каждый читает эту информацию? Я знаю, что это существует в файле, поскольку Photoshop читает его.
В BCL нет ничего, что помогло бы с EXIF.
Посмотрите на этот ТАК вопрос и ответы (Какая библиотека EXIF для .Net является лучшей?). Существует несколько коммерческих библиотек и библиотек с открытым исходным кодом, которые можно использовать для получения данных EXIF.
Если вы компилируете с v3 Framework (или более поздней версии), то вы можете загружать изображения с помощью класса BitmapSource
, который предоставляет метаданные EXIF через свойство Metadata
. Это дает гораздо более тесную связь с информацией EXIF на изображениях, хотя примечания производителя специфичны и потребуют дальнейшего декодирования.
Я нашел это некоторое время назад, но еще не использовал. Мне показалось, что там есть информация о производителе.
http://renaud91.free.fr/MetaDataExtractor/
ОБНОВЛЕНИЕ:
Проект метаданных-экстрактора существует с 2002 года для Java, а теперь доступен и для .NET. Он имеет полную поддержку макернот Canon, а также камер и сканеров Agfa, Casio, Epson, Fujifilm, Kodak, Kyocera, Leica, Minolta, Nikon, Olympus, Panasonic, Pentax, Sanyo, Sigma/Foveon и Sony.
Здесь вы можете просмотреть примеры вывода нескольких изображений с камер Canon (и других).
Библиотека доступна через NuGet или GitHub.
Примеры использования:
IEnumerable<Directory> directories = ImageMetadataReader.ReadMetadata(path);
foreach (var directory in directories)
foreach (var tag in directory.Tags)
{
Console.Out.WriteLine($"{directory.Name} - {tag.TagName} = {tag.Description}");
}
см. обновленный ответ здесь: C# Retrieve Canon Specific EXIF Data