我尝试将所有freedraw对象分组到画布上,对该组进行缩放和序列化,然后将该组加载到另一个画布上。
目前,我正在使用此代码对画布上的所有对象进行分组。
var group = new fabric.Group(canvas.getObjects(), {
originX: 'center',
originY: 'center'
});
在此步骤之后,我不确定如何继续。如果我没有处理群组,我会对画布进行字符串化,然后使用loadFromJSON。但是,我不认为我可以对该组进行字符串化。当我尝试使用canvas.add()时,我得到一个最大回调错误。我是否需要先将组转换为路径对象? 这是一个jsFiddle http://jsfiddle.net/xvxh6d3L/6/
如果有人有任何想法,我真的很感激。我很困难。
答案 0 :(得分:1)
您将获得最大回调错误,因为在将组添加到画布之前,需要从画布中删除组中的所有对象。
至于使它们成为对象,您可以使用JSON.stringify(group)
,然后使用fabric.util.enlivenObjects
将JSON.parse
'd对象转换回结构对象。之后,这个“enlived”对象可以重新添加到画布中。
如果您不想保存所有属性,也可以使用fabric.Object.toJSON
方法。