我正在寻找简单直接的解决方案来访问.Net中的jpeg图像的EXIF信息.有没有人有这方面的经验?
如果您正在针对框架(或更高版本)的v3进行编译,那么您可以使用BitmapSource
类加载图像,该类通过属性公开EXIF元数据Metadata
如果您愿意使用开放源代码库,那么我可以谦虚地建议我自己创建的一个吗?
自2002年以来,用于Java 的元数据提取器项目一直活跃并且运行良好,现在可用于.NET。
开源(Apache 2.0)
经过严格测试并广泛使用
支持多种图像类型(JPEG,TIFF,PNG,WebP,GIF,BMP,ICO,PCX ...)
支持多种元数据类型(Exif,IPTC,XMP,JFIF等)
支持许多制造商特定的字段(佳能,尼康,...)
速度非常快(在约3秒钟内可完全处理约400张图像,总计1.33GB),内存消耗低
适用于.NET 3.5,.NET 4.0+和PCL的版本
可通过NuGet或GitHub获得。
用法示例:
IEnumerabledirectories = ImageMetadataReader.ReadMetadata(path); foreach (var directory in directories) foreach (var tag in directory.Tags) Console.WriteLine($"{directory.Name} - {tag.TagName} = {tag.Description}");
一个新的非常快的库是由Simon McKenzie提供的ExifLib - 一个用于.NET 2.0的快速Exif数据提取器.我最终使用了这个,代码易于使用和理解.我用它作为应用程序根据所用的日期重命名.我想知道有多少次写过这样的应用程序.
我的提示:确保在完成ExifReader对象或文件保持打开后调用Dispose.