libjpeg输出缩放
libjpeg是否允许/有例程来缩放输出图像?
我有一个图像需要在保存和加载时resize,在输入上提供width1,height1并在输出上获取width2,height2,我真的不能使用任何外部。
是的,libjpeg确实支持图像缩放,但有一些限制。
Libjpeg版本8c和更高版本支持M / 8缩放 ,其中M是1到16之间的整数。更常用的libjpeg版本6b仅支持1,2,2和8的M(即2次幂缩减)。
使用scale_num和scale_denom将缩放分子和分母提供给解压缩对象。 请参阅jpeglib.h中的jpeg_decompress_struct。 您可以参考djpeg.c以获取用法示例。
与解码整个图像然后缩小尺寸相比,这更快,并且可能具有更高的质量。
不,你需要自己缩放它(线性插值是最简单和最快但是给出方形像素,双线性/三线性/双三次是技巧但是给出更平滑的结果),或者使用一个可以为你做脏工作的库(查看OpenCV,SDL,imagemagick,libpipi等)
更多相关信息 ,请点击此处 。
简单最近邻插值的实际代码(未优化):
dest[dx+dy*dest_width] = src[(dx*src_width/dest_width)+(dy*src_height/dest_height)*src_width]
只需根据dest_width和dest_height迭代dx和dy。 但实际上,请使用库。