使用fabric.js在画布中保存JSON

时间:2013-04-02 11:34:12

标签: javascript json html5 canvas fabricjs

我正在尝试导入多个svg文件,并在修改后将json保存到数据库。我试过用

    canvas.item(0).sourcePath = '/URL/FILE.svg';
    JSON.stringify(canvas.toDatalessJSON());

但这不适用于多个文件,它仅适用于第一个文件。我试图指定每个文件网址,但无法理解如何做到这一点。请问任何解决方案?

提前致谢

1 个答案:

答案 0 :(得分:5)

canvas.item(0) - 获取第一个对象。 canvas.item(1) - 获取第二个对象,依此类推......

如果您不知道对象的总数,可以使用canvas.forEachObject选项。

     canvas.forEachObject(function(obj){
        obj.sourcePath = '/URL/FILE.svg';
        console.log(obj.sourcePath)
     });

     JSON.stringify(canvas.toDatalessJSON());

你也可以在加载像这样的svg时设置obj.sourcePath。

    fabric.loadSVGFromString(svg, function(objects, options) {
      var obj = fabric.util.groupSVGElements(objects, options);
      obj.sourcePath = '/URL/FILE.svg';
      canvas.add(obj);
      canvas.renderAll();
    });

希望有所帮助!