我正在用c ++编写缩略图查看器。
我首先使用EXIF信息来检索图像的缩略图,但EXIF中的缩略图很糟糕,带有黑色条带。所以我想获得jpeg的嵌入式缩略图,我该怎么做?
另一个问题: jpeg的嵌入缩略图是否等于EXIF thumbnial?
答案 0 :(得分:6)
如果EXIF缩略图不好,您可以从JPEG本身生成自己的缩略图,而无需完全解码JPEG。
查找 EPEG 的源代码。它是SourceForge上Enlightenment项目的一部分,并且是一年前旧EFL的一部分。你仍然可以从一些旧的SVN提交或者可能浮动的源tarball中挖掘它。
基本上,EPEG所做的是,它从图像中收集DCT系数,并对它们执行重新缩放操作。 DCT系数通常用作8×8像素块的基本系数。您可以将其视为一个像素。因此,您的(缩略图)缩略图恰好是原始图像大小的1/8。像对待任何图像数据一样将其重新缩放到所需的尺寸。
答案 1 :(得分:2)
在大多数人们谈论具有缩略图的JPEG文件的情况下,他们的意思是文件是JPEG-EXIF,EXIF数据包含缩略图。
但是,JFIF 1.02支持缩略图图像是正确的。缩略图可以存储在JFIF APP0标记或官方JFXX APP0扩展标记中;缩略图可以是未压缩的RGB,JPEG或托盘。看到 http://en.wikipedia.org/wiki/JPEG_File_Interchange_Format#JFIF_segment_format了解详情。
答案 2 :(得分:0)
最快和推荐的方式是图书馆。
例如,www.exiv2.org可以为您提供嵌入式缩略图和EXIF信息提取的库。有很多选择,但我认为这是一个很好的解决方案。
答案 3 :(得分:-1)