2
キャンバスに画像を描画する前にCSSフィルタを追加しようとしています。これは私のJavaScriptです。キャンバスに描画する前に画像にフィルタを追加する
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();
};
このイメージをキャンバス以外のものに読み込むと、正しくレンダリングされます。しかし、私はキャンバスに飽和した画像が見えません。何か不足していますか?ありがとうございました。
画像を描いた後でフィルタを設定する方法はありますか? –
@AlexKonetchyキャンバス自体を再描画するだけです。イメージをそのまま描画し、フィルタプロパティを設定し、globalCompositeOperationをコピーするように設定し(アルファチャンネルが含まれている場合)、画像ソースとしてキャンバスにdrawImageを使用します。 – K3N
さて、それはとても近いですが、フィルタを切り替える方法はありますか?私は3回イメージを再描画しています。フィルターなしで初めて。 2回目はフィルターを使います。 3回目にキャンバスをコピーして描画するとき、フィルタなしの元の画像と同じように描画しますが、フィルタを設定するたびに2回目に設定します。キャンバスは私にとってとても新しいものです。 –