Wie remove overlay-Bild aus Fabric.js Leinwand?
Ich verwende overlay-Bild auf meinem Fabric.js und es wird Hinzugefügt, wie hier:
canvas.setOverlayImage('image.png', canvas.renderAll.bind(canvas));
Mein problem ist, dass ich nicht finden können, um die Methode zu entfernen Sie es von der Leinwand. Das entfernen von Objekten, die ich verwenden kann remove(object)
aus der Klasse fabric.StaticCanvas
, aber ich habe noch keinen Weg gefunden wie zu dienen overlay-Bild als Objekt auf diese Methode. Ich habe versucht, den overlay-Bild zu null
:
canvas.setOverlayImage(null, canvas.renderAll.bind(canvas));
aber es hat nicht geholfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick auf den Quellcode, es sieht fast aus wie ein bug, dass man nicht setzen es auf null in der Weise, die Sie erwarten würde (als parameter zu setOverlayImage). Blick auf static_canvas.class.js sehen Sie den Quellcode für
setOverlayImage()
:Und in util/misc.js sehen Sie den Quellcode für
util.loadImage()
:So können Sie sehen, wenn Sie übergeben Sie null, um
setOverlayImage()
null wird wiederum das argumentutil.loadImage()
. Und wenn das argument für die letztere null ist, gibt die Methode nichts tut, also wiederum die ganze operation nichts.Sieht es aus wie Sie haben zu betrügen, und direkt festlegen der Eigenschaft auf die
canvas
Objekt:Erstellte ich einen Knebel, der abwechselnd mit einem overlay-Bild und ein null-overlay. Dies ist möglich, nachdem Kangax aktualisieren Sie den code:
Anstelle von Null, nur machen Sie es leer.
setOverlayImage(null, ...
dann funktioniert das auch.Ich gefunden habe das gleiche Problem
Ich behoben, indem die Einstellung backgroundImage = 0