IOS HTML5 Canvas 绘图/clearRect 问题

IOS HTML5 Canvas Issue on draw / clearRect

我正在使用 iOS 9.3.2 并且遇到一个问题,如果我用一组给定的尺寸绘制图像,然后用相同的尺寸擦除该图像(使用 clearRect),则有一个图像的剩余边缘。为了解决这个问题,我只是调整了我要清除的尺寸,直到我旋转 phone(这并不总是会破坏它,但可能有 50% 的时间它会破坏它)。然后边缘会回来。这在 chrome 浏览器上的 Android 中不是问题,但在 iOS 上的 safari 和 chrome 中都会发生。

有人有什么建议吗?我还没有找到与此相关的任何现有问题,但如果您有任何帮助,我将不胜感激!谢谢!

这几乎可以肯定是由于绘制图像时的抗锯齿造成的。

您可以做的一些事情:

  • 始终在整个像素 x,y 坐标上绘制图像,可能使用:ctx.drawImage(img, x | 0, y | 0, w, h);确保您在同一 space 中清除。如果您的 currentTransform 未被整数量抵消,这可能无法正常工作。
  • 设置ctx.imageSmoothingEnabled = false;