【发布时间】:2016-03-31 23:13:16
【问题描述】:
我编写了这个 webRTC 应用程序,它可以拍摄添加了不同滤镜的照片。当我点击点击按钮时,来自 webRTC 视频源的帧被加载到右侧的画布上。
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标记来执行此操作。这是一个例子(不是我的):jsfiddle.net/AbdiasSoftware/7PRNN -
@SpencerWieczorek 应用效果后,它不允许我从画布上下载图像。 toDataURL() 从画布上下载没有效果的图像。如何在下载之前将过滤器绑定到图像?
-
您需要将过滤器直接应用于
canvas元素。然后下载,此方法会准确下载画布上下文中的内容。
标签: javascript html canvas webrtc