我想清除某个画布区域中的描边矩形。我最初的想法是,我只需要使用相同的参数再次调用context.strokeRect
函数,之前将strokeStyle
更改为transparent
。但它不起作用。为什么以及如何解决它?请注意,我只想清除矩形的笔划(边框),而不是内部的所有内容。
编辑:我想只清除边框,而不是内部的所有内容,因此我无法使用clearRect()
方法。此外,我无法清除整个画布并重新绘制它,因为画布包含动画。
答案 0 :(得分:0)
下面的示例有两个画布。 Unit
只有一些文字。然后我用"红色"填充ssh user@ip mysqldump --all-databases > dump.sql
画布。并使用background
foreground
删除像素。我还将alpha设置为0.5,并删除一些像素。
globalCompositeOperation

"destination-out"

const ctxB = background.getContext("2d");
const ctxF = foreground.getContext("2d");
ctxB.textAlign = "center";
ctxB.textBaseline = "middle";
ctxB.font ="20px arial";
ctxB.fillText("Some Background text",150,25);
ctxB.fillText("Some Background text",150,75);
ctxB.fillText("Some Background text",150,125);
ctxF.lineJoin = "round";
ctxF.fillStyle = "red";
ctxF.fillRect(0,0,300,150);
ctxF.lineWidth = 8;
ctxF.globalCompositeOperation = "destination-out";
ctxF.strokeRect(25,25,250,100);
ctxF.fillRect(75,50,150,50);
ctxF.globalAlpha = 0.5;
ctxF.fillRect(65,40,170,70);
ctxF.globalCompositeOperation = "source-over";