2013-02-20 70 views
2

那么,如果我在HTML5 Canvas中绘制了一个具有奇数值的lineWidth值的线条,我就会看到模糊的线条,并且我知道这个问题的原因。Canvas中的线条宽度

现在,我想知道解决方案来克服这一点。我已经知道这个解决方案,而现在我无法实施。所以,请对此问题的其他解决方案发表评论。

我的解决方案: 如果你有画以奇数宽度的线,那么你将有0.5抵消你的线的中心向上或向下。这样渲染将发生在像素边界而不是中间,并且您将始终有一条锐利的线条,并且在边缘处没有残留物。

让我知道,如果不是上述

+0

[在画布中绘制线条,但最后一个褪色]的可能重复(http://stackoverflow.com/questions/10373695/drawing-lines-in-canvas-but-the-last-ones-are-褪色) – 2013-02-20 11:32:36

+0

SVG允许您设置'crispEdges'渲染模式;不幸的是不可能的画布:http://stackoverflow.com/questions/11353499/svg-canvas-shape-rendering-crispedges-via-javascript – 2013-02-21 02:43:07

+0

我不应该使用SVG ... – 2013-02-21 04:20:25

回答

3

令人高兴的其他(和可悲的是)任何其他解决方案,您正确实施“像素捕捉”当你加/减0.5像素,让您的线条与像素边界对齐。与Photoshop不同,没有选项可以自动在画布中捕捉像素。 ...我感到你的痛苦!

+0

我会很高兴,如果我为此得到一个解决方案... – 2013-02-21 04:20:09