Javascript 无法在canvas.loadFromJSON上设置统一的笔划宽度?
因此,我指定了Rect,如:Javascript 无法在canvas.loadFromJSON上设置统一的笔划宽度?,javascript,canvas,fabricjs,Javascript,Canvas,Fabricjs,因此,我指定了Rect,如: addRect() { let square = new fabric.Rect({ width: 20, height: 30, stroke:"yellow", strokeWidth:10, left: 50, top: 50, strokeUniform:true, fill:"rgba(0,0,0,0.2)",
addRect() {
let square = new fabric.Rect({
width: 20,
height: 30,
stroke:"yellow",
strokeWidth:10,
left: 50,
top: 50,
strokeUniform:true,
fill:"rgba(0,0,0,0.2)",
flipX:true
});
this.canvas.add(square);
}
在画布上,我得到了如下内容:
我临时保存画布数据:
saveData() {
let jsonData = JSON.stringify(this.canvas);
localStorage.setItem('data', jsonData);
this.dataPreview.nativeElement.value = jsonData;
}
然后我将这些数据加载回画布:
loadData() {
let jsonData = localStorage.getItem('data');
this.canvas.loadFromJSON(
jsonData,
() => {
this.canvas.requestRenderAll();
this.dataPreview.nativeElement.value = jsonData;
},
this.onDataLoadFailed
);
}
我在画布上看到这样的东西:
我该如何解决这个问题?我认为问题可能是因为JSON数据没有任何strokeUniform属性的值,strokeUniform属性已从中注释 解决方法是将属性作为
哇,效果很好,非常感谢!
console.log(JSON.stringify(canvas.toJSON("strokeUniform")));