对象的自定义属性在canvas中被清除为json

时间:2015-10-27 09:04:27

标签: javascript json canvas html5-canvas fabricjs

我有一个包含多个image objects的画布。每个对象都有一些自定义属性。我需要将此画布作为json对象保存到数据库中。我使用以下代码将canvas转换为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 elementIdelementnameelementstatus丢失。但默认属性是正确的。

如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

您可以使用fabric的canvas.toJson()或canvas.toDatalessJSON()函数,并且可以将自定义属性包含为如下参数:

<meta http-equiv="refresh" content="<%=session.getMaxInactiveInterval()%>" url="redirect URL" />