在解码期间调整JPEG图像的大小

时间:2010-03-23 14:25:34

标签: resize jpeg thumbnails decode

我正在开发一个程序,可以动态创建JPEG图像的缩略图。现在我在想:由于JPEG图像是由8x8像素块(Wikipedia has a great explanation)构建的,是否可以跳过部分解码?

假设我的缩略图至少比原始图像小8倍。然后,我们可以通过仅包括离散余弦变换的常数项,将输入文件中的每个8x8块映射到解码输出中的1个像素。大多数图像数据可以立即丢弃,无需处理。此外,内存使用量减少了64倍。

我不想从头开始实施;这将很快需要一个星期。有没有可以做到这一点的代码?

如果没有,这是因为这种方法不值得,或者仅仅是因为没人想到它?

3 个答案:

答案 0 :(得分:4)

我认为djpeg's scale功能可以做到这一点。

它可以将8x8块缩放到1到16像素之间的任何大小。

“这很有趣,因为可以直接从JPEG(DCT)数据中检索不同的空间大小输出,而无需单独的完整解码和空间重采样。”

答案 1 :(得分:2)

根据this answer,来自启蒙运动的EPEG就是通过收集DCT系数来将图像缩小8倍。这是current home of EPEG

答案 2 :(得分:0)

我正在处理的项目目前正在使用ImageGen,可以动态调整各种图像大小 - 如果功能列表符合您的要求,这可能会收回成本。否则我想你想要在图像上实现有损文件压缩,必须之前已经完成了!