【发布时间】:2016-01-26 14:35:26
【问题描述】:
我有一个包含多个image objects 的画布。每个对象都有一些自定义属性。我需要将此画布作为 json 对象保存到数据库中。我使用以下代码将画布转换为 json。
canvasJson = JSON.stringify(canvas);
转换后,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);
使用 JSON.stringify(canvas); 将画布转换为 json 缺少 elementId、elementname 和 elementstatus。但默认属性是正确的。
如何解决这个问题?
【问题讨论】:
-
请添加您的完整代码 sn-p 或创建 JSFiddle 以详细说明。
-
向我们展示您的画布对象。
-
你想做什么?
-
我在创建时添加了 elementid、elementname、elemetstatus 作为所有图像对象的自定义属性。现在我想获得我的自定义属性也是 json 对象
-
你必须扩展 fabric.Image 类。可能这个会有所帮助。 [stackoverflow.com/questions/11272772/…
标签: javascript json canvas html5-canvas fabricjs