4

我正在用 C++ 编写缩略图查看器。

我首先使用 EXIF 信息来检索图像的缩略图,但是 EXIF 中的缩略图很糟糕,带有黑色条纹。所以我想得到jpeg的嵌入缩略图,我该怎么做呢?

另一个问题:jpeg 的嵌入缩略图是否等于 EXIF 缩略图?

4

4 回答 4

6

如果 EXIF 缩略图不好,您可以从 JPEG 本身生成自己的缩略图,而无需完全解码 JPEG。

寻找EPEG的源代码。它是 SourceForge 上 Enlightenment 项目的一部分,并且是一年前旧 EFL 的一部分。您仍然可以从一些旧的 SVN 提交或可能漂浮的源 tarball 中挖掘它。

基本上,EPEG 所做的是从图像中收集 DCT 系数,并对它们执行重新缩放操作。DCT 系数通常用作 8x8 像素块的基本系数。您可以将其视为一个像素。结果,您有一个(无需计算)缩略图,正好是原始图像大小的 1/8。像将任何图像数据重新缩放到所需的尺寸一样。

于 2009-08-25T01:48:10.533 回答
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

于 2011-12-31T19:36:47.380 回答
0

最快和推荐的方法是库。

例如,www.exiv2.org可以为您提供嵌入缩略图和 EXIF 信息提取的库。有很多替代方案,但我认为这是一个很好的解决方案。

于 2009-08-25T01:44:53.517 回答
-1

在我看来,www.exiv2.org 是一个糟糕的解决方案。其他项目的部门太多了。例如,Expat 和 zlib。如果您想提出一个可以自己支持的轻量级解决方案,我建议您编写自己的 EXIF 解码器。

于 2010-06-22T10:02:55.860 回答