Image.fromURL错误回调

问题描述 投票:6回答:3

我正在尝试使用fromURL加载图像。问题是我希望能够加载默认图标,如果它无法到达图像服务器下载图像。查看文档我没有看到fromURL函数的错误回调。我们怎么能发现电话没有成功,因此做了适当的事情?当图像加载不成功时,似乎根本没有调用回调。

fabricjs
3个回答
4
投票

您可以使用fabric.util.loadImage()方法而不是fabric.Image.fromURL()

如果你看一下fromURL()方法实现,它在内部使用loadImage()

以下代码可以帮助您:

fabric.util.loadImage('https://s3-eu-west-1.amazonaws.com/kienzle.dev.cors/img/image2.png', function(img) {
    if(img == null) {
        alert("Error!");
    }else {
        var image = new fabric.Image(img);
        canvas.add(image).setActiveObject(image);
        canvas.renderAll();
    }
}, { crossOrigin: 'anonymous' });

这是小提琴:http://jsfiddle.net/k7moorthi/30kmn5kL/


1
投票

您可以使用getElement()来检查此错误。

fabric.Image.fromURL('/foo.jpg', (img) => {
  if (img.getElement() === undefined) {
    console.log('Failed to load image!');
    return;
  }
  // do something on success
}

1
投票

一旦你完成了这个功能,即使回调一直运行错误,你也可以用这种方式检查元素(正如其他所说):

let fabricBackgroundInstance = new fabric.Image.fromURL(imageToUse, (oImg) => {

  if(oImg._element == null){
    console.error('oImg', oImg._element);
    return;
  }
© www.soinside.com 2019 - 2024. All rights reserved.