码迷,mamicode.com
首页 > 其他好文 > 详细

Canvas 2D绘制抗锯齿的1px线条

时间:2015-03-18 19:57:09      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:

当绘制1像素的线条时,发现多条线明显存在着粗细不均的问题,线条带有明显的锯齿.

事实上,Canvas的绘制线条指令都存在这个状况,如lineTo,arcTo,strokeRect.

解决方案是将Canvas平移半个像素即可:

var ctx = document.getElementById("canvas").getContext("2d");
ctx.translate(0.5, 0.5);

这意味着,在绘制线条时,如果Canvas上下文中对应的坐标值为整数,那么绘制的中心点恰好是相邻像素的间隙.

于是很显然,基于这个坐标值进行1px的线条渲染时就占据了间隙两侧的像素点,明明指定了lineWidth的值为1,

渲染出来的结果却是2像素宽.

 

Canvas 2D绘制抗锯齿的1px线条

标签:

原文地址:http://www.cnblogs.com/fangzhaolee/p/4347908.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!