If you’re willing to use an open-source library, may I humbly suggest one of my own creation?
The metadata-extractor project has been alive and well since 2002 for Java, and is now available for .NET.
- Open source (Apache 2.0)
- Heavily tested and widely used
- Supports many image types (JPEG, TIFF, PNG, WebP, GIF, BMP, ICO, PCX…)
- Supports many metadata types (Exif, IPTC, XMP, JFIF, …)
- Supports many manufacturer-specific fields (Canon, Nikon, …)
- Very fast (fully processes ~400 images totalling 1.33GB in ~3 seconds) with low memory consumption
- Builds for .NET 3.5, .NET 4.0+ and PCL
It’s available via NuGet or GitHub.
Sample usage:
IEnumerable<Directory> directories = ImageMetadataReader.ReadMetadata(path);
foreach (var directory in directories)
foreach (var tag in directory.Tags)
Console.WriteLine($"{directory.Name} - {tag.TagName} = {tag.Description}");