我一直在使用canvas元素,发现当我试图在一些宽度/高度配置下绘制相邻的NxN均匀纯色单元格时,它们之间会出现模糊的白色线。
例如,这个画布应该是黑色的,但包含某种我推测是由于浏览器中错误的反锯齿处理而形成的网格。
可以说,这个bug只在某些配置中出现,但我希望彻底解决它。有没有办法规避这个问题?您是否曾经遇到过canvas中的反锯齿问题?
我制作了这个fiddle来演示这个问题,并允许您玩弄画布的尺寸和单元格数量。它还包含我用来绘制单元格的代码,以便您检查并告诉我是否做错了什么。
var ctx = canvas.getContext('2d');
ctx.clearRect(0, 0, canvasWidth, canvasHeight);
for (var i = 0; i < numberOfCells; ++i) {
for (var j = 0; j < numberOfCells; ++j) {
ctx.fillStyle = '#000';
ctx.fillRect(j * cellWidth, i * cellHeight, cellWidth, cellHeight);
}
}
提前感谢您,
Petr.
300 / 70 = 4.285...
这将使任何边缘反锯齿化,因此会出现一条线。由于四舍五入的原因,它似乎做到了预期的效果... - somethinghere