CanvasRenderingContext2D.filterで写真を保存する際に問題があります。ビデオに接続してフィルタなしで撮影しようとすると、通常保存されます。ただし、キャンバスにいくつかのフィルタを追加した後は、HTMファイルとして保存しています。変わったのは、そのスクリーンショットを手動でダウンロードすると、toDataUrlが自動的にダウンロードされ、通常はダウンロードされ、フィルタが含まれていますが、toDataUrlを使用して保存しても、その画像は表示されません。 これらのフィルタを使用して写真を保存するにはどうすればよいですか?CanvasRenderingContext2Dフィルタを使用してキャンバスを保存する
var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
var video = document.getElementById("video");
document.getElementById("snapshot").addEventListener("click", function() {
if ($('video').hasClass('blur')) {
context.filter ="blur(2px)";
}
else {
context.filter= "";
}
context.drawImage(video, 0, 0);
});
document.getElementById("download").addEventListener("click", function() {
download.href = canvas.toDataURL("image/jpeg");
};
.blur {
-webkit-filter: blur(3px);
-moz-filter: blur(3px);
-ms-filter: blur(3px);
-o-filter: blur(3px);
filter: blur(3px);
}
<video id="video" autoplay></video>
<canvas id="canvas"></canvas>
<button id="download" download="picture" href=""></button>