Vig*_*ala 4 javascript json canvas html5-canvas fabricjs
我有一张画布,上面有多个image objects. 每个对象都有一些自定义属性。我需要将此画布作为 json 对象保存到数据库中。我使用以下代码将 canvas 转换为 json。
canvasJson = JSON.stringify(canvas);
Run Code Online (Sandbox Code Playgroud)
转换后,canvasJson不能有任何自定义属性及其值。它只有默认属性和宽度、高度、不透明度等值。
我该如何解决这个问题?请建议一些正确的方法来解决这个问题......
编辑
以下是我的图像对象创建代码,用于在画布中创建图像对象。
var imgObj = new Image();
var imgSrc = $IMAGE_URL;
imgObj.src = imgSrc;
var image = new fabric.Image(imgObj);
image.set({
left: 0,
top: 0,
angle: 0,
padding: 0,
cornersize: 0,
lockMovementX: true,
lockMovementY: true,
lockRotation: true,
elementId: $elementID,
elementname: $elementName,
elementstatus: $elementStatus,
width: componentImageWidth,
height: componentImageHeight
});
canvas.add(image);
image.setCoords();
canvas.renderAll();
canvas.selection = false;
canvas.renderAll();
setObjectAction(image, false);
Run Code Online (Sandbox Code Playgroud)
JSON.stringify(canvas);使用elementId,elementname和elementstatus缺少将画布转换为 json 。但默认属性获取正确。
如何解决这个问题?
小智 6
您可以使用 Fabric 的 canvas.toJson() 或 canvas.toDatalessJSON() 函数,并且可以将自定义属性作为参数包含在内,如下所示:
var json = JSON.stringify(canvas.toDatalessJSON(['elementId','elementname', 'elementstatus']));
Run Code Online (Sandbox Code Playgroud)