Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript fabricjs还原修改_Javascript_Html_Canvas_Fabricjs - Fatal编程技术网

Javascript fabricjs还原修改

Javascript fabricjs还原修改,javascript,html,canvas,fabricjs,Javascript,Html,Canvas,Fabricjs,我正在用fabricjs创建一个应用程序,用户可以将宠物拖到有背景图像的画布上,并进行旋转、缩放等修改 当我想将画布的背景更改/切换到任何其他图像时,画布中已放置的所有图像都应恢复到第一次放置到画布时的状态(其大小、位置、角度等)。我是否可以保存每个对象/图像的状态,以便在背景发生变化时恢复它,以及如何执行 下面是我用来改变背景的代码 $("#change-bg").on("click", function(){ canvas.setBackgroundImage("assets

我正在用fabricjs创建一个应用程序,用户可以将宠物拖到有背景图像的画布上,并进行旋转、缩放等修改

当我想将画布的背景更改/切换到任何其他图像时,画布中已放置的所有图像都应恢复到第一次放置到画布时的状态(其大小、位置、角度等)。我是否可以保存每个对象/图像的状态,以便在背景发生变化时恢复它,以及如何执行

下面是我用来改变背景的代码

$("#change-bg").on("click", function(){
        canvas.setBackgroundImage("assets/images/sofa.jpg", function(){
            canvas.renderAll();
            // restore all objets states
            // ... don't have any idea yet
        });
    });

这个解决方案怎么样:

每当向画布添加新对象时,将画布数据导出为JSON:

    savedposition = canvas.toJSON();
在更改BG的函数中,只需将savedposition JSON字符串加载回画布,然后渲染背景:

    canvas.loadFromJSON(savedposition,canvas.renderAll.bind(canvas));

这里有一把小提琴:

这个解决方案怎么样:

每当向画布添加新对象时,将画布数据导出为JSON:

    savedposition = canvas.toJSON();
在更改BG的函数中,只需将savedposition JSON字符串加载回画布,然后渲染背景:

    canvas.loadFromJSON(savedposition,canvas.renderAll.bind(canvas));

这里有一把小提琴:

这个解决方案怎么样:

每当向画布添加新对象时,将画布数据导出为JSON:

    savedposition = canvas.toJSON();
在更改BG的函数中,只需将savedposition JSON字符串加载回画布,然后渲染背景:

    canvas.loadFromJSON(savedposition,canvas.renderAll.bind(canvas));

这里有一把小提琴:

这个解决方案怎么样:

每当向画布添加新对象时,将画布数据导出为JSON:

    savedposition = canvas.toJSON();
在更改BG的函数中,只需将savedposition JSON字符串加载回画布,然后渲染背景:

    canvas.loadFromJSON(savedposition,canvas.renderAll.bind(canvas));

这里有一把小提琴:

我已经找到了自己的方法,但是如果我的想法出错,我会保留你的想法。谢谢你,我已经找到了自己的方法,但是如果我的想法出了问题,我会保留你的想法。谢谢你,我已经找到了自己的方法,但是如果我的想法出了问题,我会保留你的想法。谢谢你,我已经找到了自己的方法,但是如果我的想法出了问题,我会保留你的想法。谢谢