从JPG读取EXIF数据
我需要分析数千个jpeg文件(通过检索它的EXIF数据)。 它超过50 GB的数据。我无法读取整个文件,因为它需要花费太多时间。
C#中是否有任何方法只读取这些文件中的EXIF数据而无需加载和解压缩整个jpeg文件?
编辑:为什么我需要快速方法?
我试过这个问题的解决方案: 如何使用C#从文件中获取EXIF数据
对于1000张总大小约为1GB的图像,分析需要3分钟。 因此,对于较大的(50G)照片库,可能需要2个小时。 当您需要几乎即时的信息时,例如:“客户使用的缩放比例是什么”,这太慢了。
您可以在ExifLib中找到一些代码示例- 一个用于.NET 2.0+的快速Exif数据提取器 (以及一个完整的项目),它显示了如何读取仅获取EXIF信息所需的最小数据。
我最近将我的Java 元数据提取器库移植到.NET。 它自2002年以来一直活跃,并通过广泛使用进行了大量测试。 在我的测试中,它通过2GB的图像进行搅拌,在我的机器上大约4秒内提取所有元数据。 您可以通过告诉它只读取特定类型的元数据(例如Exif)来进一步优化。 它支持许多图像/video格式和许多元数据类型。
可在GitHub和NuGet上使用 。
GdPicture.NET Imaging SDK启动版本10提供了一种新的图像解析机制,允许直接访问图像元数据(EXIF,GPS,XMP,IPTC ……)而无需解码像素。 它支持90多种图像格式,包括JPEG,TIFF,RAW和WebP。
这里是GdPicture.NET知识库的链接,它演示了如何使用C#和VB.NET提取元数据(还支持许多其他语言):
如果有人需要进一步的信息,我将很乐意提供帮助。
免责声明:我是GdPicture.NET的产品架构师。
你不需要解压缩任何东西,Exif信息保存在图像之前的标题中,所以你需要做的就是打开文件,读取exif标题并解码你需要的任何东西。 如果您手动读取exif数据(这并不难)。
如果您需要的只是尺寸,那就在前面
编辑:注意exif数据实际上并不是必须在前面,但它几乎总是如此,所以可以安全地假设一般来说它会比它不是很快。
另外,您是否检查过使用标准API“太慢”? 我不会想到50G会花那么长的时间(或者如果以不同的方式做它必然会更快)。
上述就是C#学习教程:从JPG读取EXIF数据分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1013416.html