关于draw / clearRect的IOS HTML5 Canvas问题

时间:2016-06-27 15:35:24

标签: javascript ios html5 canvas orientation-changes

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

有没有人有任何建议?我还没有找到与此相关的任何现有问题,但如果你有任何帮助我会非常感激!谢谢!

1 个答案:

答案 0 :(得分:2)

这几乎可以肯定是由于绘制图像时出现了抗锯齿现象。

你可以做的一些事情:

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