Как получить данные EXIF из файла с помощью C# [закрыто]
Я хотел бы написать небольшую программу на C#, которая просматривает мои фотографии jpeg и, например, сортирует их в датированные папки (используя мои соглашения о датировке, черт возьми...).
кто-нибудь знает относительно простой способ получить данные EXIF, такие как дата и время или экспозиция программно? Спасибо!
7 ответов:
зацените metadata extractor.
Он написан на Java, но также был перенесен на C#.я использовал Java-версию, чтобы написать небольшую программу для переименования файлов в формате JPEG в зависимости от даты и модели теги. Очень проста в использовании.
EDITmetadata-extractor поддерживает .NET тоже. Это очень быстрая и простая библиотека для доступа к метаданным из изображений и видео.
он полностью поддерживает Exif, а также как IPTC, XMP и многие другие типы метаданных из типов файлов, включая JPEG, PNG, GIF, PNG, ICO, WebP, PSD,...
var directories = ImageMetadataReader.ReadMetadata(imagePath); // print out all metadata foreach (var directory in directories) foreach (var tag in directory.Tags) Console.WriteLine($"{directory.Name} - {tag.Name} = {tag.Description}"); // access the date time var subIfdDirectory = directories.OfType<ExifSubIfdDirectory>().FirstOrDefault(); var dateTime = subIfdDirectory?.GetDateTime(ExifDirectoryBase.TagDateTime);
Он доступен через NuGet и код на GitHub.
Как было предложено, вы можете использовать некоторую стороннюю библиотеку или сделать это вручную (что не так много работы), но самый простой и гибкий, возможно, использовать встроенные функции в .NET. Подробнее см.:
вот ссылка на другой подобный так вопрос, который имеет ответ, указывающий на эту хорошую статью о "чтение, запись и метаданные фотографий" in. Net.
инструмент командной строки ExifTool Фила Харви работает с десятками форматов изображений, включая множество проприетарных форматов RAW, и может манипулировать различными форматами метаданных, включая EXIF, GPS, IPTC, XMP, JFIF.
очень простое в использовании, легкое, впечатляющее приложение.
получение данных EXIF из изображения JPEG включает в себя:
- Поиск к маркерам JPEG, который упоминает начало данных EXIF,. например, обычно oxFFE1-это маркер, вставляемый при кодировании данных EXIF, который является сегментом приложения, куда идут данные EXIF.
- проанализируйте все данные от 0xffe1 до 0xFFE2 . Эти данные будут потоком байтов, в файле с кодировкой JPEG.
- ASCII эквивалент этих байтов будет содержать различную информацию связанный с датой изображения, названием модели камеры, экспозицией и т. д...