【发布时间】:2017-07-30 05:51:59
【问题描述】:
所以我们都知道用略微模糊的笔划绘制形状的问题。当使用普通的 js 和 canvas 时,我能够通过以下方法修复它,而不会出现进一步的问题:
context.sRect=function(x,y,w,h){
x=parseInt(x)+0.50;
y=parseInt(y)+0.50;
this.strokeRect(x,y,w,h);
}
context.fRect=function(x,y,w,h){
x=parseInt(x);
y=parseInt(y);
context.fillRect(x,y,w,h);
}
但是,当使用easeljs stage时,这些方法根本没有任何影响,并且形状保持模糊。使用 drawRect(); 时,我还尝试将 x 和 y 以及宽度和高度偏移 -.5;那也没有用。我尝试的最后一件事是将 stage.regX 和 stage.regY 设置为 -.5,这确实改变了输出,但只是改变了模糊(稍微更模糊)。 我错过了什么吗?
PS:我需要画布始终具有相同的宽度和高度 (200 * 200),但同时始终填满屏幕。我通过始终将 canvas.width/height 设置为 200 并将 canvas 的 css 设置为 100% 来实现这一点。
【问题讨论】:
-
如果你用 CSS 缩放你的画布,你将无法避免模糊,因为在大多数情况下你是在拉伸元素,并且画布抗锯齿是由浏览器执行的。
标签: javascript html5-canvas createjs easeljs