С 2002 года я поддерживал simple open-source library для извлечения метаданных из изображений/видеофайлов.
// Read all metadata from the image
var directories = ImageMetadataReader.ReadMetadata(stream);
// Find the so-called Exif "SubIFD" (which may be null)
var subIfdDirectory = directories.OfType<ExifSubIfdDirectory>().FirstOrDefault();
// Read the DateTime tag value
var dateTime = subIfdDirectory?.GetDateTime(ExifDirectoryBase.TagDateTimeOriginal);
В моих тестах, этот код работает более 12 раз быстрее, чем Image.GetPropertyItem
, и около 17 раз быстрее, чем WPF JpegBitmapDecoder
/BitmapMetadata
API.
В библиотеке имеется тонна дополнительной информации, такой как настройки камеры (F-stop, ISO, скорость затвора, режим вспышки, фокусное расстояние, ...), свойства изображения (размеры, конфигурации пикселей) и другие вещи такие как позиции GPS, ключевые слова, информация об авторских правах и т. д.
Если вас интересуют только метаданные, использование этой библиотеки происходит очень быстро, так как оно не декодирует изображение (то есть растровое изображение).Вы можете сканировать тысячи изображений за несколько секунд, если у вас достаточно свободного места для хранения.
ImageMetadataReader
понимает многие типы файлов (JPEG, PNG, GIF, BMP, TIFF, PCX, WebP, ICO, ...). Если вы знаете , что вы имеете дело с JPEG, и вы только хотите данные Exif, то вы можете сделать этот процесс еще быстрее со следующим:
var directories = JpegMetadataReader.ReadMetadata(stream, new[] { new ExifReader() });
метаданных экстрактор библиотека доступна через NuGet и code's on GitHub. Благодаря всем удивительным вкладчикам, которые улучшили библиотеку и представили тестовые изображения на протяжении многих лет.
Могу ли я использовать BitmapMetadata с Window.Forms или это только WPF? (получение странных сообщений об ошибках из Visual Studio 2008) – sepang 2008-10-07 20:42:32
Или используйте [мою библиотеку] (http://stackoverflow.com/a/39839380/24874), которая имеет более простой API и работает примерно в 17 раз быстрее, чем эти API WPF (или 30 раз быстрее, если вы хотите только Exif). – 2016-10-03 21:05:18