Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在fabric.js中删除图形?_Javascript_Canvas_Html5 Canvas_Fabricjs_Drawing2d - Fatal编程技术网

Javascript 如何在fabric.js中删除图形?

Javascript 如何在fabric.js中删除图形?,javascript,canvas,html5-canvas,fabricjs,drawing2d,Javascript,Canvas,Html5 Canvas,Fabricjs,Drawing2d,有一块画布,上面有一个对象。需要在对象上绘图,也需要橡皮擦功能。 请参见画布屏幕截图: 我看到fabric.js没有擦除功能。有没有办法用刷子把画擦掉 谢谢 var toBase64Btn=document.getElementById(“toBase64”); var canvas=document.getElementById(“a”); var ctx=canvas.getContext(“2d”); var绘图=错误; var drawingMode=“添加”; var pencilW

有一块画布,上面有一个对象。需要在对象上绘图,也需要橡皮擦功能。 请参见画布屏幕截图:

我看到fabric.js没有擦除功能。有没有办法用刷子把画擦掉

谢谢

var toBase64Btn=document.getElementById(“toBase64”);
var canvas=document.getElementById(“a”);
var ctx=canvas.getContext(“2d”);
var绘图=错误;
var drawingMode=“添加”;
var pencilWidth=25;
var base64Str=“”;
var fabCan=新织物帆布(“b”);
var fillColor=“rgba(255,0,0,5)”;
var GetMouseCoordination=函数(evt){
返回{
x:evt.pageX-this.offsetLeft,
y:evt.pageY-这是offsetTop
};
};
canvas.onmousedown=函数(e){
如果(图纸)返回错误;
绘图=真;
var mouse=getmousecoordinal.call(this,e);
ctx.globalCompositeOperation=drawingMode==“添加”?“异或”:“目标输出”;
ctx.fillStyle=drawingMode==“添加”?fillColor:“rgba(0,0,0,1)”;
ctx.beginPath();
弧(mouse.x,mouse.y,pencilWidth,0,2*Math.PI);
ctx.fill();
ctx.closePath();
};
canvas.onmousemove=函数(e){
如果(!drawing)返回false;
var mouse=getmousecoordinal.call(this,e);
ctx.beginPath();
弧(mouse.x,mouse.y,pencilWidth,0,2*Math.PI);
ctx.fill();
ctx.closePath();
};
canvas.onmouseup=函数(e){
如果(!drawing)返回false;
图纸=假;
};
toBase64Btn.onclick=函数(){
如果(图纸)返回错误;
var img=document.createElement(“img”);
img.onload=函数(){
var组=[];
ctx.clearRect(0,0,canvas.width,canvas.height);
fabCan.add(newfabric.Image(this));
fabCan.getObjects().forEach(函数(obj){
obj.globalCompositeOperation=“xor”;
推组(obj);
});
fabCan.clear().add(new fabric.Group(Group)).renderAll();
};
img.src=canvas.toDataURL(“image/png”);
};
document.getElementById(“擦除”).onchange=function(){
drawingMode=this.checked?“删除”:“添加”;
控制台。警告(绘图模式);
};
fabCan.add(新织物.Rect)({
宽度:100,
身高:100,
填充:填充颜色
}));

擦除:
添加到oilayer

上面的橡皮擦示例的某些部分很好,但这只是使用画布,而不是织物js。