一般来说,最终质量相当不错,除非图像中有一些非常微妙的细节,例如头发。然后缩小的图像会导致其自身过度锐化。画布用于调整图像大小的默认算法是什么?
有没有办法获得更好的结果?
一般来说,最终质量相当不错,除非图像中有一些非常微妙的细节,例如头发。然后缩小的图像会导致其自身过度锐化。画布用于调整图像大小的默认算法是什么?
有没有办法获得更好的结果?
根据测试结果和网上零散的信息,目前 canvas 使用Nearest Member。尽管规范不强制任何特定算法。Mozilla 中有一个关于切换到双线性的讨论,但它似乎还没有在浏览器中实现。
您通常只是drawImage
用来调整画布上的图像大小。以下是来自 Mozilla 的示例:
// Width and height is the image's size on the target canvas.
drawImage(image, x, y, width, height)
有关更多示例,请参见此处;特别是“切片”部分。