【问题标题】:fabricjs restore modificationsfabricjs 恢复修改
【发布时间】:2014-02-19 00:57:12
【问题描述】:

我正在使用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
        });
    });

【问题讨论】:

    标签: javascript html canvas fabricjs


    【解决方案1】:

    如何解决这个问题:

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

        savedposition = canvas.toJSON();
    

    在你改变背景的函数中,只需将保存的位置 JSON 字符串加载回画布,然后渲染背景:

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

    这里有一个小提琴:http://jsfiddle.net/DanBrown180/sbT3d/

    【讨论】:

    • 我已经找到了自己的方法,但是如果我的想法出错了,我会保留你的想法。非常感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多