angular - Fabric.js 背景仅在更改缩放值后出现
问题描述
我正在尝试使用 Pattern 更改画布背景:
this.canvas.setBackgroundColor(new fabric.Pattern({source: url, repeat: 'repeat'}),
()=> {
this.canvas.renderAll();
});
我正在使用这样的外部网址:https ://cdn.pixabay.com/photo/2016/02/20/02/21/colorful-1211510_960_720.png
画布已创建并正在工作,但除非我对画布进行放大(放大或缩小),否则背景图像不会出现,因为我这样做背景会出现。
为什么你认为我有这个问题?我做错什么了吗?我该如何解决这种行为?
解决方案
我不知道它的来龙去脉,但根据以下文档:backgroundImage :fabric.Image,图像需要绑定到它所在的画布上。也许通过backgroundColor
属性设置模式也是如此。
backgroundImage :fabric.Image
画布实例的背景图像。由于 2.4.0 图像缓存处于活动状态,请在将图像作为背景时,向 canvas 属性添加对其所在画布的引用。否则图像无法检测到缩放值。作为替代方案,您可以禁用图像对象缓存
这是一个工作示例: https ://jsfiddle.net/sunny001/cb4eqjf1/44/
let canvas
let url = "https://cdn.pixabay.com/photo/2016/02/20/02/21/colorful-1211510_960_720.png"
canvas = new fabric.Canvas('canvas-tools');
canvas.setBackgroundColor({
source: url,
repeat: 'repeat'
}, canvas.renderAll.bind(canvas));
推荐阅读
- python - 无法加载图像以在自定义数据集上训练模型
- r - 计算 qnorm 值的倒数
- android - 为什么应用程序关闭后 Flutter Android 警报管理器无法在设备中运行?
- docker - Docker 内部的 Docker 通过 -v /var/run/docker.sock:/var/run/docker.sock 和 Docker 内部的卷
- postgresql - 无法连接到 Cloud SQL 代理
- java - java - 如何使用Java中的QueryBuilder从Elasticsearch的字符串中获取带有下划线的值?
- excel - Excel将文本提取到列中
- node.js - 安装新软件包时 npm-force-resolutions 不起作用
- python - 使用 gnp_random_graph 创建多个图
- typescript - Vuejs 3 从子组件向父组件发出事件