使用html5的网络摄像头拍摄一张照片
Take a single picture using webcam in html5
我正在制作一个javascript小类,使用电子和赛昂应用程序的网络摄像头。他们需要像使用数码相机一样使用相机,比如,看到视频流,点击一个按钮,然后保存图像。
class Camera {
constructor() {
this.video = document.createElement('video');
}
getStream() {
return new Promise(function (resolve, reject) {
navigator.webkitGetUserMedia({ video: true }, resolve, reject);
});
}
streamTo(stream, element) {
var video = this.video;
return new Promise(function (resolve, reject) {
element.appendChild(video);
video.src = window.URL.createObjectURL(stream);
video.onloadedmetadata = function (e) {
video.play();
resolve(video);
}
});
}
}
这将允许我创建一个流,并将流作为视频元素附加到页面上。然而,我的问题是:我如何从这个流中获得一张图片?例如,在某种按钮上单击,保存当前帧。
$('button[data-action="take-picture"]').on('click', function (ev) {
// the clicked button has a "source" referencing the video.
var video = $(ev.target).data('source');
// lost here. Want to catch current "state" of the video.
// take that still image and put it in the "target" div to preview.
$(ev.target).data('target').append( /** my image here */ );
});
我如何保存图片从视频流在javascript上的事件?
基于@putvande提供的链接,我能够在我的类中创建以下内容。我在构造函数中添加了一个画布以使其工作。很抱歉这么长的代码块。
class Camera {
constructor(video, canvas, height=320, width=320) {
this.isStreaming = false; // maintain the state of streaming
this.height = height;
this.width = width;
// need a canvas and a video in order to make this work.
this.canvas = canvas || $(document.createElement('canvas'));
this.video = video || $(document.createElement('video'));
}
// streamTo and getStream are more or less the same.
// returns a new image element with a still shot of the video as streaming.
takePicture() {
let image = new Image();
let canv = this.canvas.get(0)
var context = canv.getContext('2d');
context.drawImage(this.video.get(0), 0, 0, this.width, this.height);
var data = canv.toDataUrl('image/png');
image.src = data;
return image;
}
}
相关文章:
- 有人能提供一张ember数据与broswer's的持久层
- jQuery只隐藏<tr>在一张桌子上
- 如何从三张图片中选择一张?其余的必须是看不见的
- 通过onclick事件将一张图片更改为6张图片
- Sequelize hasMany浏览另一张表
- jm按下停止步骤进入滚动的下一张幻灯片
- 我用JavaScript FIleReader读了一张图片,但是我无法得到图片的信息
- 当 Flickity 到达下一张或上一张幻灯片时的事件
- 单击从一张图像切换到两张图像,然后再切换回一张图像
- 单击另一张图像,显示一张图像几秒钟
- 为什么bxSlider会打断我在最后一张幻灯片和第一张幻灯片之间的转换
- 用d3和topojson绘制一张地图
- 灯箱只显示第一张照片
- 在画布标签里放一张照片
- 上传一张照片到朋友的涂鸦墙上
- Facebook Graph jQuery AJAX调用,代表用户发布一张照片
- 当我点击一张照片时,如何更改页面上的所有照片?
- 使用html5的网络摄像头拍摄一张照片
- 关闭漂亮的照片幻灯片上点击最后一张幻灯片
- 离开和重新进入图片库时,无论何时单击上一张/下一张照片按钮,都会使您浏览的照片数量增加一倍.知道为什么吗?