开源橡皮擦工具的橡皮擦工具(Fabric js)的替代品
Alternative of Eraser Tool(Fabric js) for a open source Eraser tool
我想使用 fabric js 创建一个 在线绘图工具,部署在 PHP web page.Most fabric,js 的自定义工具中,我创建成功。
但是我无法像 MS Paint 橡皮擦..
中那样创建橡皮擦工具
我发现 eraser.This 的这种替代方法会在对象
中遮盖白色颜色
function eraser() {
mode = 'pencil';
canvas.isDrawingMode = true;
canvas.freeDrawingBrush.width = strokeWidth;
canvas.freeDrawingBrush.color = 'white';
}
但是,我想创建一个类似于 MS Paint 的橡皮擦。
我登记入住了,In Fabric js there is no built in eraser
请任何人帮助我。
是否可以在 fabric js 中制作橡皮擦?
如果不可能,你能推荐任何简单的 fabric js 替代品,就像任何 open source/free 网络绘图工具 这将支持橡皮擦功能。
很遗憾 fabric.js 不支持此功能。我认为最好的方法是用背景颜色绘制,就像这个例子:http://fabricjs.com/freedrawing/
不过我发现了这个很好的例子:http://jsfiddle.net/ArtBIT/WUXDb/1/
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;
var radius = 10; // or whatever
var fillColor = '#ff0000';
ctx.globalCompositeOperation = 'destination-out';
ctx.fillCircle(x, y, radius, fillColor);
希望对您有所帮助。
这种可能性是存在的,但是你应该在刚画的时候反转一下:
//eraser
canvas.on('path:created', function (opt) {
opt.path.globalCompositeOperation = 'destination-out';
opt.path.lineWidth = strokeWidth;
opt.path.stroke = 'rgba(0,0,0,0)';
//opt.path.fill = 'black';
canvas.requestRenderAll();
});
//draw
canvas.on('path:created', function (opt) {
opt.path.globalCompositeOperation = 'source-over';
opt.path.lineWidth = strokeWidth;
opt.path.stroke = 'black';
//opt.path.fill = 'black';
canvas.requestRenderAll();
});
我想使用 fabric js 创建一个 在线绘图工具,部署在 PHP web page.Most fabric,js 的自定义工具中,我创建成功。
但是我无法像 MS Paint 橡皮擦..
中那样创建橡皮擦工具我发现 eraser.This 的这种替代方法会在对象
中遮盖白色颜色function eraser() {
mode = 'pencil';
canvas.isDrawingMode = true;
canvas.freeDrawingBrush.width = strokeWidth;
canvas.freeDrawingBrush.color = 'white';
}
但是,我想创建一个类似于 MS Paint 的橡皮擦。 我登记入住了,In Fabric js there is no built in eraser
请任何人帮助我。
是否可以在 fabric js 中制作橡皮擦?
如果不可能,你能推荐任何简单的 fabric js 替代品,就像任何 open source/free 网络绘图工具 这将支持橡皮擦功能。
很遗憾 fabric.js 不支持此功能。我认为最好的方法是用背景颜色绘制,就像这个例子:http://fabricjs.com/freedrawing/
不过我发现了这个很好的例子:http://jsfiddle.net/ArtBIT/WUXDb/1/
var x = e.pageX - this.offsetLeft;
var y = e.pageY - this.offsetTop;
var radius = 10; // or whatever
var fillColor = '#ff0000';
ctx.globalCompositeOperation = 'destination-out';
ctx.fillCircle(x, y, radius, fillColor);
希望对您有所帮助。
这种可能性是存在的,但是你应该在刚画的时候反转一下:
//eraser
canvas.on('path:created', function (opt) {
opt.path.globalCompositeOperation = 'destination-out';
opt.path.lineWidth = strokeWidth;
opt.path.stroke = 'rgba(0,0,0,0)';
//opt.path.fill = 'black';
canvas.requestRenderAll();
});
//draw
canvas.on('path:created', function (opt) {
opt.path.globalCompositeOperation = 'source-over';
opt.path.lineWidth = strokeWidth;
opt.path.stroke = 'black';
//opt.path.fill = 'black';
canvas.requestRenderAll();
});