我可以将HTML5视频元素保存到DataURL,并且它可以正常工作。但是当我向视频元素添加-webkit-filter css规则时,我遇到了一个问题 - 我可以拍摄的图片不受-webkit-filter的影响。 我的代码:
var canvas = document.createElement('canvas');
canvas.width = 860;
canvas.height = 640;
var ctx = canvas.getContext('2d');
ctx.drawImage(this.target, 0, 0, canvas.width, canvas.height);
canvas.style['-webkit-filter'] = 'blur(2px)';
var dataURI = canvas.toDataURL('image/jpeg');
window.open(dataURI);
但它仍然没有保存"模糊"效果 - 只有简单的图片。
如果有人能帮助我,我将非常感激:)
答案 0 :(得分:1)
您可以使用myNewImg.src=canvas.toDataURL()
创建img元素,然后将滤镜应用于新的img。
此处的示例代码和演示(在Chrome浏览器中查看):
var canvas=document.getElementById("canvas");
var ctx=canvas.getContext("2d");
var cw=canvas.width;
var ch=canvas.height;
var img=new Image();
img.crossOrigin='anonymous';
img.onload=start;
img.src="https://dl.dropboxusercontent.com/u/139992952/stackoverflow/card.png";
function start(){
canvas.width=img.width;
canvas.height=img.height;
ctx.drawImage(img,0,0);
var filteredImg=new Image();
filteredImg.id='filteredImg';
filteredImg.onload=function(){
document.body.appendChild(filteredImg);
}
filteredImg.src=canvas.toDataURL();
}

body{ background-color: ivory; }
#canvas{border:1px solid red; }
#filteredImg{
-webkit-filter: blur(3px);
-moz-filter: blur(3px);
-ms-filter: blur(3px);
-o-filter: blur(3px);
filter: blur(3px);
}

<h4>View in Chrome or FF. IE & Edge don't yet support filters</h4>
<canvas id="canvas" width=300 height=300></canvas>
&#13;