开发者问题收集

fabric.js 中的图像对象问题

2017-01-26
2725

我是 fabric.js 的新手。我需要从画布中的 URL 加载几张图片,并将它们添加为图像对象,以便我可以设置它们的 z 索引。

我尝试使用 Image.fromURL ,但它没有返回对象,所以我无法设置它们的 z 索引。新的 fabric.Image 从页面获取图像,所以我没有从中得到结果。

这是我到目前为止所做的

var canvas = new fabric.Canvas('myCanvas');
var front_wall = fabric.Image.fromURL('img/bedroom1-front/front_wall.png', 
    function(img) {
        img.scale(0.65);
        canvas.add(img);
    }
);

我用同样的方式添加了另外五张图片。

fabric.Image.fromURL 可以返回图像对象(通过使用任何属性)吗?

所以我可以在加载后更改它们的 z 索引。

抱歉,我没有 jsfiddle 可展示。

1个回答

欢迎来到 Stack Overflow,

请查看此 fiddle

我在该 fiddle 中添加了一些注释。代码如下:

var srcImg = "http://fabricjs.com/lib/pug.jpg";
var canvas = new fabric.Canvas('c');
var icon = null;
var image = fabric.Image.fromURL(srcImg, function(oImg) {
                    oImg.set({width: oImg.width / 3,
                              height: oImg.height / 3,
                              left: 100,
                              top: 100,
                              originX: 'center',
                              originY: 'center',
                              selectable: false,
                              transparentCorners: false});

          //magic strats here to make active Image and you can control image object here
                    canvas.setActiveObject(oImg);
                    icon = canvas.getActiveObject();
                    icon.hasBorders = false;
                    icon.hasControls = false;                   
                    canvas.add(oImg);
                });

//if you want to control outside somewhere you can do this:
setTimeout(function(){
    icon.set({'top': 200, 'left': 200});
  canvas.renderAll();
}, 1500);
Observer
2017-01-26