【发布时间】:2015-03-19 10:06:41
【问题描述】:
早些时候我注意到strokeRect(以及任何其他涉及笔划的方法,例如lineTo)创建了一条2 px 宽的灰色线条,而不是1 px 宽的黑色线条。经过一些谷歌搜索后,我发现context.translate(0.5, 0.5) 解决了这个问题。但是现在fillRect(和之前涉及fill 的任何其他方法一样)创建了一个带有灰色边框的黑框。
有没有人知道一个好方法来使 fillRect 和 strokeRect 都具有清晰的边缘而没有灰色边框?我也不知道是否应该对图像使用context.translate(0.5, 0.5),因为无论我是否翻译,SVG 似乎都有清晰的边缘。
这是一个演示这个的 jsfiddle:http://jsfiddle.net/Tysonzero/ydm21pkt/1/
请注意,底部的strokeRect清晰而顶部的模糊,顶部的fillRect清晰而底部的模糊。
【问题讨论】:
-
它们绝对是整数。我一般使用
(100, 100, 100, 100)或类似的。 -
您的实际画布尺寸是否在 css 中缩放?
-
什么意思?我不直接在 CSS 中设置画布大小,而是在 JavaScript 中设置宽度和高度,它会自动重新调整大小。我可以向你保证,这些都不是问题。 Here 就是我所说的那种东西。
标签: javascript html canvas