我正在使用最新版本的Fabirc.js。这就是我cloning图片的方式。

var object = fabric.util.object.clone(_canvasObject.getActiveObject());

object.set("top", object.top+10);
object.set("left", object.left+10);
_canvasObject.add(object);
_canvasObject.renderAll();


但是,如果将图像过滤器应用于克隆的对象,则原始对象也会共享它。如何解决呢?

最佳答案

您正在调用的clone函数是一个对象克隆实用程序,它在克隆的第一级停止。它不会遍历作为对象的属性。

要正确克隆图像,请使用:

_canvasObject.getActiveObject().clone(function(cloned) {
  cloned.set("top", cloned.top+10);
  cloned.set("left", cloned.left+10);
  _canvasObject.add(cloned);
});

09-25 18:48