fabricJS canvas 中的 setOverlayImage 错误 - 错误?

setOverlayImage error in fabricJS canvas - bug?

我遇到了一个问题,每次单击鼠标并将其拖动到 select 的 canvas 部分时,都会出现大量相同的错误。我已将我的代码剥离到最低限度以发生此错误:

var canvas = new fabric.Canvas('card_canvas'); canvas.setOverlayImage('/man/images/card_overlay.png',canvas.renderAll.bind(canvas));

这个错误在fabricJS官网上的setOverlayImage demo也可以看到,错误是:

TypeError: Argument 1 of CanvasRenderingContext2D.drawImage could not be converted to any of: HTMLImageElement, HTMLCanvasElement, HTMLVideoElement.

据我所知,这是由于 setOverlayImage 使用 url 字符串而不是图像对象,但是如果我通过图像对象传递它根本不起作用。我将如何解决这个问题?

您发布的代码似乎 work fine,此 jsfiddle 使用 github 存储库中的最新版本的库,也许错误已修复。

备选方案:

fabric.Image.fromURL('/man/images/card_overlay.png', function(img) {
    canvas.setOverlayImage(img, canvas.renderAll.bind(canvas));
});