jQuery Webcam 调用摄像头拍照插件
jQuery Webcam 这个插件为直接在 JavaScript 中与摄像头通信提供了一个透明的访问层。它通一个 SWF 文件与摄像头交互,可以显示 Webcam 输出和捕捉图象。如果有多个摄像头,它可以显示可用的摄像头列表,然后供用户选择其中任意一个。
插件介绍
jQuery 的摄像头插件是一个透明层,用相机直接在 JavaScript 中的沟通。 这个插件提供了三种不同的模式,通过一个小的接入网络摄像头应用程序接口直接与 JavaScript 或者更准确地说是 jQuery。因此它是可能带来的图像在画布上(回调模式),存储图像在服务器(保存模式)和流的 Flash 元素的实况图像画布上(流模式)。
使用方法
简单调用
$("#camera").webcam({ width: 320, height: 240, mode: "callback", swffile: "/download/jscam_canvas_only.swf", onTick: function() {}, onSave: function() {}, onCapture: function() {}, debug: function() {}, onLoad: function() {} });
参数说明
- windth:flash文件的宽度
- height:flash文件的高度
- mode:储存模式:callback, save, stream
- swffile:flash文件的地址
拍照
调用 webcam.capture() 方法实现拍照。
保存照片
webcam.save() 方法实现保存照片,简单调用里面的 onSave 参数是保存照片的方法,接收一个函数为照片
var canvas = document.createElement("canvas"); canvas.setAttribute('width', 320); canvas.setAttribute('height', 240); if (canvas.toDataURL) { ctx = canvas.getContext("2d"); image = ctx.getImageData(0, 0, 320, 240); saveCB = function(data) { var col = data.split(";"); var img = image; for(var i = 0; i < 320; i++) { var tmp = parseInt(col[i]); img.data[pos + 0] = (tmp >> 16) & 0xff; img.data[pos + 1] = (tmp >> 8) & 0xff; img.data[pos + 2] = tmp & 0xff; img.data[pos + 3] = 0xff; pos+= 4; } if (pos >= 4 * 320 * 240) { ctx.putImageData(img, 0, 0); $.post("/author/jsmail?page=avatar", {type: "data", image: canvas.toDataURL("image/jpeg")}, function(){ location.reload(); }); pos = 0; } }; } else { saveCB = function(data) { image.push(data); pos+= 4 * 320; if (pos >= 4 * 320 * 240) { $.post("/author/jsmail?page=avatar", {type: "data", image: image.join('|')}, function(){ location.reload(); }); pos = 0; } }; }
以上是官方的例子,创建一个 Canvas 来保存图片,然后上传到服务端。
如何获取
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论