设置后可以删除fabric.Canvas中的backgroundImage吗:

canvas.setBackgroundImage('img_url',function() {
    canvas.renderAll();

还是只是回到标准背景?将backgroundColor设置为white不起作用。

感谢您的帮助!
问候最大

最佳答案

这是renderAllfabric.Canvas函数的摘录;

...
if (this.backgroundColor) {
    canvasToDrawOn.fillStyle = this.backgroundColor;
    canvasToDrawOn.fillRect(0, 0, this.width, this.height);
}

if (typeof this.backgroundImage === 'object') {
    this._drawBackroundImage(canvasToDrawOn);
}
...

显然,实际上,当您执行canvas.backgroundColor = white;时,背景色被设置为白色。但是,由于canvas.backgroundImage仍然是Image对象,因此会在您用背景填充的任何颜色上绘制该对象。

因此,当您不想绘制backgroundImage时,需要将其设置为0。它不适用于null,因为typeof this.backgroundImage === 'object'仍然评估为true中的renderAll,提示绘制backgroundImage。不过,它可以与canvas.backgroundImage = 0;一起使用。

Example

关于javascript - fabricjs删除backgroundImage,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14171378/

10-09 18:44