libjpeg是否允许/有例程缩放输出图像?
我有一个图像,它需要调整大小时,保存和加载,提供width1,height1的输入和获得width2,height2的输出,我真的不能使用任何外部。
发布于 2012-03-27 04:00:57
是的,libjpeg确实支持图像缩放,但有一些限制。
Libjpeg版本8c及更高版本支持M/8 scaling,其中M是1到16之间的整数。更常用的libjpeg版本6b仅支持1、2、4和8的M(即2的幂的缩小)。
使用scale_num和scale_denom将缩放分子和分母提供给解压缩对象。参见jpeglib.h中的jpeg_decompress_struct。您可以参考djpeg.c获取用法示例。
这比解码整个图像然后缩小比例要快得多,而且质量可能更高。
发布于 2011-11-06 18:31:30
不,你需要自己缩放它(线性插值是最简单和最快的,但给出正方形的像素,双线性/三线性/双三次是小把戏,但会给出更平滑的结果),或者使用一个库来为你做繁琐的工作(检查OpenCV,SDL,imagemagick,libpipi.等)
更多关于这个here的信息,here。
简单最近邻插值的实际代码(未优化):
dest[dx+dy*dest_width] = src[(dx*src_width/dest_width)+(dy*src_height/dest_height)*src_width]只需根据dest_width和dest_height迭代dx和dy即可。但实际上,可以使用一个库来实现这一点。
https://stackoverflow.com/questions/7488048
复制相似问题