以编程方式将图像添加到 fabricJS 中的 canvas

programatically add images to canvas in fabricJS

我有一张图片要添加到 fabricJS canvas。用户将指定应在 canvas.

上添加相同图像的次数

当我遍历用户输入的次数并使用 fabric.Image.fromURL 添加时,它只会添加一次,并且只会添加到最后一个位置。

编辑:

Here is the jsfiddle on what I am trying to do
http://jsfiddle.net/apsixion/9g0Lfydw/3/

这是我今天解决的方法.. 将绘制图像的代码移动到外部的不同函数,并在外观中调用该函数。可能不是最佳解决方案,但对我有用。

// create a wrapper around native canvas element (with id="c")
var canvas = new fabric.Canvas('c', {
    selection: false
});

function drawRectangles(number) {

    i = 0;
    var pic =
        "http://depts.washington.edu/hplab/wordpress/wp-content/uploads/2014/10/smiley-e1415084033498.jpeg";
    for (var i = 0; i < number; i++) {
        var rect = new fabric.Rect({
            left: 5 + i * 160,
            top: 10,
            width: 150,
            height: 150,
            lockRotation: true,
            lockMovementX: false,
            lockMovementY: false
        });
        canvas.add(rect);
    }
    for (var k = 0; k < number; k++) {
        drawStars(k);
    }
}

function drawStars(k) {
    var picStars =
        "http://reviews.babymonitorsdirect.co.uk/images/5-stars.jpg";

    fabric.Image.fromURL(picStars, function (img2) {

        img2.set({
            lockRotation: true,
            lockMovementX: true,
            lockMovementY: true,
            left: 5 + k * 160,
            top: 10,
            width: 50,
            height: 50,
            lockScalingX: true,
            lockScalingY: true,
            selectable: true,
            hasControls: false
        });
        canvas.add(img2);

    });

}
drawRectangles(5);

http://jsfiddle.net/apsixion/z6dq0dp9/2/