Ich versuche, einen CSS-Filter hinzuzufügen, bevor ich das Bild auf meiner Leinwand zeichnen. Das ist mein Javascript.Hinzufügen eines Filters zum Bild vor dem Zeichnen auf Leinwand
img = new Image();
img.src = "picture.png";
img.crossOrigin = "Anonymous";
img.style="filter: saturate(8);";
context = canvas.getContext('2d');
context.lineJoin = "round";
context.lineWidth = cursorSize;
img.onload = function() {
context = canvas.getContext('2d');
context.drawImage(this, 0,0,width,height);
layer.draw();
};
Wenn ich dieses Bild in etwas anderes als die Leinwand laden, rendert es richtig. Aber ich sehe das gesättigte Bild nicht auf meiner Leinwand. Fehle ich etwas? Vielen Dank.
Gibt es eine Möglichkeit, den Filter nach dem Zeichnen des Bildes zu setzen? –
@AlexKonetchy Sicher, zeichnen Sie die Leinwand einfach neu: Zeichnen Sie das Bild wie es ist, setzen Sie die Filtereigenschaft, setzen Sie globalCompositeOperation auf copy (falls Alpha-Kanal beteiligt ist) und verwenden Sie drawImage mit Leinwand als Bildquelle. – K3N
Okay, es ist so nah, aber gibt es eine Möglichkeit, den Filter umzuschalten? Ich zeichne das Bild 3 Mal neu. Das erste Mal ohne Filter. Das zweite Mal mit einem Filter. Wenn ich die Leinwand zum dritten Mal kopiere und zeichne, möchte ich sie wie das Originalbild ohne Filter zeichnen, aber jedes Mal bleibt der Filter bei dem, was ich beim zweiten Mal eingestellt habe. Canvas ist so neu für mich ... –