我写了这个webRTC应用程序,它将不同的过滤器添加到它的照片。当我点击点击按钮时,来自webRTC视频源的帧被加载到右侧的画布上。如何下载HTML5画布上的图片?
HTML代码 -
<video id="vid" autoplay="true"></video>
<canvas id="cvs"></canvas>
<button id="btn1" onclick="start()">Start</button>
<button id="btn2" onclick="change()">Change Filter</button>
<button id="btn3" onclick="snap()" ng-click="random()">Click</button>
添加过滤器后,我写的图片捕捉到画布上的功能如下
function snap()
{
canvas.className = '';
if (findex != 0)
canvas.classList.add(filters[findex]);
canvas.getContext("2d").drawImage(video, 0, 0, canvas.width, canvas.height);
}
哪有在照片被点击后,我允许用户使用滤镜将图像下载到计算机上编辑?
你可以在'canvas'元素上使用'.toDataURL()'方法,使用'a'标签来做到这一点。这里是一个例子(不是我的):http://jsfiddle.net/AbdiasSoftware/7PRNN/ – 2014-09-26 01:30:51
@SpencerWieczorek它不允许我在应用效果后从画布下载图像。 toDataURL()从画布下载图像而没有效果。下载前如何将滤镜绑定到图像上? – 2014-09-26 01:41:32
您将需要直接将过滤器应用于'canvas'元素。然后下载,这个方法准确下载画布上下文中的内容。 – 2014-09-26 01:51:59