使用canvas" strokeRect"功能与" shadowBlur"属性将填补rect范围

时间:2012-03-31 03:13:40

标签: javascript google-chrome canvas

我使用以下代码绘制一个空心矩形。

ctx = canvas.getContext("2d");
ctx.shadowOffsetX = 1;
ctx.shadowOffsetY = 1;
// ctx.shadowBlur    = 1;
ctx.strokeStyle = '#f00'; 
ctx.lineWidth   = 1;
ctx.strokeRect(x, y, w,h);

很好。但是当我设置ctx的shadowBlur属性时,矩形被填充。它在Firefox中很好用。 enter image description here

2 个答案:

答案 0 :(得分:1)

当你再做一次击球时,你需要恢复上下文。

ctx = canvas.getContext("2d");

ctx.save();
ctx.shadowOffsetX = 1;
ctx.shadowOffsetY = 1;
ctx.shadowBlur    = 1;
ctx.strokeStyle = '#f00'; 
ctx.restore();

ctx.lineWidth   = 1;
ctx.strokeRect(x, y, w,h);

或者在完成想要模糊的笔划后,将shadowBlur设置为null。

答案 1 :(得分:0)

我在Google代码中报告了一个错误。解决方案是将线宽从1更改为1.1。它有效。

获取更多信息:

chromium Issue 121251