如何消除图片锯齿 html,Html5 canvas drawImage图片抗锯齿

本文介绍了如何在Html5 canvas中处理drawImage时遇到的图片锯齿问题。通过设置`imageSmoothingQuality`属性来改善重采样质量,以及采用降压方法逐步缩小图片尺寸,实现更好的抗锯齿效果。具体步骤包括创建屏幕外画布,分多次将图像尺寸减半,最后绘制到目标画布上。
摘要由CSDN通过智能技术生成

Html5 canvas drawImage图片抗锯齿2018-01-26 11:17

虽然drawImage会自动应用消除锯齿,但如果是从大尺寸变为小尺寸,某些图像就不尽人意了,比如曲线。

对于可能的性能原因,浏览器似乎通常使用的是双线性(2×2采样)插值与画布元素而不是双立方(4×4采样)。

如果这个步骤太大,那么根本就没有足够的像素从结果中反映出来。

从signal/DSP的角度来看,可以将此看作是低通滤波器的阈值设置得太高,如果信号中有许多高频,则可能会导致混叠。

现在在specs中定义了一个新属性,用于设置重采样质量:

context.imageSmoothingQuality = "low|medium|high"

目前只有Chrome支持。每个级别使用的实际方法由供应商决定,但将Lanczos假设为“高”或质量相当的东西是合理的。

则可以完全跳过降级,或者根据图像大小和浏览器,更少的重绘可以使用较大的步骤。

解决方案是使用降压来获得正确的结果。降压意味着您可以逐步缩小尺寸,以允许有限的插值范围覆盖足够的像素进行采样。

这也可以在双线性插值的情况下得到很好的结果,这样做的时候,其实际上表现得更像是双立方体。

而且由于在每个步骤中采样的像素较少,所以开销很小。

理想的步骤是在每个步骤中使用分辨率的一半,直到设置到目标大小为止。

在原始问题中使用直接缩放

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值