在HTML5画布上绘制未反锯齿的多边形

时间:2018-03-18 19:50:34

标签: javascript html5 canvas antialiasing

我正在尝试创建一个具有未抗锯齿,未风化,未经过深化等边缘/边的多边形。我的目标是让一个具有可见像素化边缘的多边形像老派游戏一样。我发现图像不使用适当设置的抗锯齿,但我想使用lineTo和path来创建多边形(因为我需要能够更改颜色等)。

使用缩放(将画布大小设置为实际大小的四分之一并使用CSS样式缩放画布),将形状平移0.5像素并将image-rendering属性设置为pixelated会导致此:

https://jsfiddle.net/6gbo7x3g/4/

即使结果比没有技巧更好,你仍然可以看到抗锯齿。 浏览器支持也不是很好,因为Safari不支持像素化图像渲染。以下是上面画布Chrome浏览器的屏幕截图:

image of antialiased polygon

如何创建一个非抗锯齿的多边形(具有对角线边缘)?将会有多个相似的多边形,因此手动绘制每个像素会占用大量资源。

How can I keep the edge pixels of lines from being semi-transparent?,stackoverflow.com / a / 45749684/1639593和stackoverflow.com/a/18551803/1693593这样的问题不重复,因为它们仅适用于逐像素渲染适用的场景(在这种情况下,它太耗费资源)。我问了这个问题,因为其他问题可追溯到近四年前,从那时起,网络标准肯定发生了变化。

0 个答案:

没有答案