在解码期间调整JPEG图像的大小
我正在制作一个可以动态创建JPEG图像缩略图的程序。 现在我想:由于JPEG图像是由8x8像素块构成的(维基百科有一个很好的解释),是否有可能跳过部分解码?
假设我的缩略图至少比原始图像小8倍。 然后我们可以通过只包含离散余弦变换的常数项,将输入文件中的每个8x8块映射到解码输出中的1个像素。 大部分图像数据可以立即丢弃,无需处理。 而且,内存使用量减少了64倍。
我不想从头开始实现这一点; 这将很容易需要一个星期。 有没有代码可以做到这一点?
如果不是,这是因为这种方法不值得,还是仅仅因为没有人想到它呢?
我认为djpeg的缩放功能可以做到这一点。
它可以将8x8块缩放到1和16像素之间的任何大小。
“这很有趣,因为可以直接从JPEG(DCT)数据中检索不同的空间大小输出,而无需单独的完整解码和空间重采样。”
根据这个答案,Enlightenment的EPEG做到了这一点,通过收集DCT系数来将图像缩小8倍。这里是EPEG的当前所在地。
我正在开发的这个项目使用了ImageGen,它可以随时进行各种图像大小调整 - 如果功能列表匹配您想要的功能,这可能会付出代价。 否则,我想你正在寻求在图像上实现有损文件压缩,这一定是以前完成的!
链接地址: http://www.djcxy.com/p/62883.html