经过几次测试,我终于将 fabric.canvas 保存到 MySQL 数据库,问题是我不希望画布中的图像可以调整大小,我只需要旋转。不幸的是,存储的 json 不存储 fabric.Image 对象的 lockScalingX 和 lockScalingY 属性,当我检索 fabric.canvas 时,我可以调整图像的大小。
有没有办法避免这种情况?
我使用该功能
var jsonCanvas = JSON.stringify(canvas.toDatalessObject());
使用 php 将 json 存储到数据库中我使用
canvas.loadFromJSON(data);
要了解我在说什么,请参阅此小提琴-> http://jsfiddle.net/lpccoder/YX9Wf/1/ 我设置了 oImg.lockScalingX = oImg.lockScalingY = true; 之前添加到画布以避免调整大小。按钮保存,保存画布,但是当我加载它(使用加载按钮)时,我可以调整图像的大小。
好吧,因为我没有收到任何答案,我试图在加载画布后设置 lockScalingX 和 lockScalingY,但是当我使用 forEach 方法时会发生一些奇怪的行为。我的意思是,我需要在 forEach 之前发出警报以使其正常工作,如果我不发出此警报,则 forEach 循环将不起作用。为了澄清这一点,您可以查看并比较这两个小提琴:
工作一个-> jsfiddle.net/lpccoder/hGPCG/
不工作的一个-> jsfiddle.net/lpccoder/Vv4AW/
我是javascript编码的新手,也许这是一个新手问题,但我认为这是一个非常奇怪的行为......有什么解决方案吗?