我想我要求不可能,但无论如何都要问...... 我有一个文件夹(有几个子文件夹),其中包含许多JPG和PNG格式的图像。我需要一个工具来创建这些文件的列表,包括它们的尺寸。 (宽度和高度。)为此,我可以将图像加载到位图中并读取宽度/高度属性。如果图像本身不是那么大,那就没关系了...... 标准图像尺寸约为800万像素,但约10%是40到100万像素。 (是的,这是10,000x10,000像素。)这意味着我正在处理每个50到100 MB的PNG文件。总共有7,500张图像,这意味着我的工具正忙着阅读大量文件数据 我需要一种更快的方式来读取这些文件类型的维度。不是因为内存使用,因为我的系统有32 GB RAM,但因为我不想等待45分钟才能完成索引......(好吧,有点夸张,但它并不快。)
答案 0 :(得分:1)
您在以下链接(CodeProject)中有完整的文章和工作代码。
http://www.codeproject.com/Articles/35978/Reading-Image-Headers-to-Get-Width-and-Height
他正在阅读标题信息以获取图像的尺寸。表现看起来不错。
答案 1 :(得分:0)
它非常快,您可以使用“system()”之类的东西来运行它并解析输出。
示例输出:
File name : b.jpg
File size : 643664 bytes
File date : 2014:02:19 13:07:29
Camera make : NIKON CORPORATION
Camera model : NIKON D2Xs
Date/Time : 2007:08:01 11:02:28
Resolution : 1200 x 797
Flash used : No
Focal length : 28.0mm (35mm equivalent: 42mm)
Exposure time: 0.0016 s (1/640)
Aperture : f/7.1
ISO equiv. : 250
Whitebalance : Auto
Metering Mode: center weight
Exposure : shutter priority (semi-auto)
GPS Latitude : N 52d 13.3690m 0s
GPS Longitude: W 0d 52.7070m 0s
GPS Altitude : 456.00m
Exiv2也处理PNG文件,并且可以作为库进行C调用,因此可能更优雅。