gpt4 book ai didi

javascript - Fabric.js 添加图片顺序

转载 作者:行者123 更新时间:2023-11-30 05:31:35 25 4
gpt4 key购买 nike

我试图严格地将图像添加到 Canvas ,但图像是随机添加的。

有什么问题?

这是我的简单代码。

var canvas = new fabric.Canvas("preview");
var imgs = ['bgBottom','bgTop', 'bgLevel', 'bgCircle'];
for (var i=0; i<imgs.length;i++){
var url = imgs[i]+'.png';
fabric.Image.fromURL(url, function (oImg) {
canvas.add(oImg)
})

}

最佳答案

fabric.Image.fromURL 在后台加载图像,并在图像加载完成后运行您传递给它的匿名函数,将其添加到 Canvas 。浏览器加载图像的顺序会有所不同,您不能依赖它的特定顺序。

查看 this jsfiddle显示加载图像数组并确保它们按设定顺序显示。这是通过在加载图像之前将图像添加到 Canvas 来实现的;它只是在图像可以显示之前不会呈现。

jsfiddle 中的代码:

var SelfLoadingImage = fabric.util.createClass(fabric.Object, {
initialize: function(src) {
this.image = new Image();
this.image.src = src;
this.image.onload = (function() {
this.width = this.image.width;
this.height = this.image.height;
this.loaded = true;
this.setCoords();
this.fire('image:loaded');
canvas.renderAll();
}).bind(this);
},

_render: function(ctx)
{
if (this.loaded) {
ctx.drawImage(this.image, -this.width / 2, -this.height / 2);
}
}
});

var canvas = new fabric.Canvas("preview");
var imgs = [
'http://icons.iconarchive.com/icons/fasticon/ifunny/128/dog-icon.png', // dog
'http://33.media.tumblr.com/avatar_14ee6ada72a4_128.png', // cat
'http://upload.wikimedia.org/wikipedia/commons/b/bc/Nuvola_devices_mouse.png' // mouse
];

for (var i=0; i<imgs.length;i++){
var url = imgs[i];
var img = new SelfLoadingImage(url);
canvas.add(img);
}

关于javascript - Fabric.js 添加图片顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26638984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com