fabric.js中的图像对象问题

时间:2017-01-26 10:27:07

标签: javascript jquery canvas html5-canvas fabricjs

我是 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-index。

抱歉,我没有 jsfiddle 来展示。

1 个答案:

答案 0 :(得分:1)

欢迎使用Stack Overflow,

请检查此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);