我正在尝试从512 * 512到256 * 256像素进行图像缩小,其中灰度图像表示为javascript数组大小512 * 512。使用画布drawimage方法时,可以直接将512 * 512图像绘制为256 * 256图像,此缩小图像显示为平滑。我正在尝试使用如上所述的javascript数组执行相同操作,其中我首先使用高斯内核对图像进行卷积= [1 / 16,2 / 16,1 / 16,2 / 16,4 / 16,2 / 16,1 / 16,2 / 16,1 / 16]然后我对模糊的512 * 512图像进行二次采样,得到256 * 256图像数组,我将其转换为canvas imagedata。然而,与使用画布drawimage方法缩小尺寸相比,具有模糊和子采样的方法产生了更“粗糙”的图像。有没有人知道如何实现draimage图像缩小方法,以便我可以尝试复制那个?
最好的祝福
画布规范没有定义要使用的算法。
Chrome使用了Skia图形引擎中实现的Lanczos过滤器:https://chromium.googlesource.com/chromium/src/+/master/skia/ext/image_operations.cc
SVG规范只推荐双线性重采样。