fabricjs删除背景图片
fabricjs delete backgroundImage
是否可以在fabric.Canvas
设置后删除backgroundImage:
canvas.setBackgroundImage('img_url',function() {
canvas.renderAll();
或者只是回到标准背景?设置backgroundColor
为white
无效
谢谢你的帮助!问候马克斯
这是fabric.Canvas
的renderAll
函数的一个片段;
...
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'
在renderAll
中仍然计算为true
,提示backgroundImage
被绘制。但它可以与canvas.backgroundImage = 0;
一起使用。
。
设置背景图像为null
将会移除它。
canvas.setBackgroundImage(null, canvas.renderAll.bind(canvas));
你也可以写一个这样的函数来清除背景图像和背景颜色,这很方便。
function clearCanvasBackground() {
if (canvas) {
canvas.setBackgroundImage(null);
canvas.setBackgroundColor('');
canvas.renderAll();
}
}
嗨我 FabricJs 版本是 4.5.1
两种解决方案都不适合我。因为我使用FabricJs在角与织物类型。
当我检查FabricJs源代码时,我找到了一个解决方案。
我们可以简单地
setBackgroundImage
带有空
织物。图像对象。
这样我们就可以实现删除背景图像的功能。
下面是可用于此解决方案的代码片段:
const image = new fabric.Image('');
canvas.setBackgroundImage(image, canvas.renderAll.bind(canvas));
相关文章:
- 完整的背景图片幻灯片jquery,想让幻灯片的最后一张图片可以点击
- 如何在项目符号列表中插入背景(图片)元素,其 URL 写入相邻的项目符号列表中
- 强制noVNC背景并删除自动设置的标题
- 将正文的背景图片设置为用户输入的带有Javascript的URL
- 15 拼图背景图片 JavaScript/CSS
- 背景图片的高度和宽度适应每个屏幕尺寸
- 网站背景图片没有覆盖
- JS/jQuery:背景图片加载
- 为什么我的背景图片缩放
- Javascript背景图片url css更改
- jQuery-使用复选框在背景图片和背景视频之间切换
- 背景图片's的fadeInOut过渡产生奇怪的白色效果的所有文本
- jQuery设置css背景图片
- Fullpage.js插件:把背景图片变成一个链接
- 设置背景图片与大小和不重复从文件夹中的随机图像
- 不同的背景图片jquery移动
- js全屏背景图片
- 添加背景图片&可拖动图像到HTML5画布
- 如何防止白色'闪烁'对页面加载造成的背景图片加载延迟
- fabricjs删除背景图片