javascript实现摄像头拍照预览


Posted in Javascript onSeptember 30, 2019

使用javascript实现电脑摄像头的打开和截图的功能,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>摄像头调用实例</title>
<script type="text/javascript" src="jquery-3.2.1.min.js"></script>
<script type="text/javascript">
 var video, mediaStreamTrack, canvas;//声明全局变量
 //打开摄像头
 function dk() {
  video = document.getElementById("v1");
  var videoObj = {
   "video" : true
  };
  var errBack = function(error) {
   console.log("Video capture error: ", error.code);
  };
  //根据浏览器的不同选取不同的支持
  if (navigator.getUserMedia) { // Standarda
   navigator.getUserMedia(videoObj, function(stream) {
    mediaStreamTrack = typeof stream.stop === 'function' ? stream
      : stream.getTracks()[1];
    video.src = stream;//获取摄像头抓取的到字节流
    video.play();//实时播放摄像头
   }, errBack);
  } else if (navigator.webkitGetUserMedia) { // WebKit-prefixed
   navigator.webkitGetUserMedia(videoObj, function(stream) {
    mediaStreamTrack = typeof stream.stop === 'function' ? stream
      : stream.getTracks()[1];
    video.src = window.webkitURL.createObjectURL(stream);
    video.play();
   }, errBack);
  } else if (navigator.mozGetUserMedia) { // Firefox-prefixed
   navigator.mozGetUserMedia(videoObj, function(stream) {
    mediaStreamTrack = typeof stream.stop === 'function' ? stream
      : stream.getTracks()[1];
    video.src = window.URL.createObjectURL(stream);
    video.play();
   }, errBack);
  }
 }
 //截图
 function jq() {
  canvas = document.getElementById("c1");
  var context = canvas.getContext("2d");
  //将视频当前的页面转换为图片,显示到画板中
  context.drawImage(video, 0, 0, 200, 202);
  //把canvas图像转为img图片
  /* var src = canvas.toDataURL("image/jpeg");
  createImg(src); */
 }
 //关闭摄像头
 function gb() {
  mediaStreamTrack.stop();
 }
 //生成图片
 /* function createImg(src) {
  var dv = document.getElementById("dv1");
  var img = document.createElement("img");
  img.setAttribute("src", src);
  img.setAttribute("width", 205);
  img.setAttribute("height", 205);
  dv.appendChild(img);
 } */
 //上传
 /* function sc() {
  $.post('TestServlet', {
   "img" : canvas.toDataURL().substr(22)
  }, function(data, status) {
   alert(status != "success" ? "图片处理出错!" : data == "yes" ? "图片上传完成!"
     : data);
  });
 } */
</script>
<style type="text/css">
input[type="button"]{
border: 1px solid red;
}
</style>
</head>
<body>
 <div>
  <input type="button" value="打开" onclick="dk()"> 
  <input type="button" value="截取图像" onclick="jq()"> 
  <input type="button" value="关闭" onclick="gb()">
 </div>
 <div>
  <!--视频 -->
  <video width="200px" height="200px" id="v1"></video>
  <br />
  <!--画板 -->
  <canvas id="c1"></canvas>
  <br />
 </div>
 <!--记录每次截图的结果 -->
 <!-- <div id="dv1"></div> -->
</body>
</html>

但是谷歌浏览器可以打开摄像头,无法获取实时数据。火狐比较好用。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
一步一步制作jquery插件Tabs实现过程
Jul 06 Javascript
jQuery bind事件使用详解
May 05 Javascript
js页面滚动时层智能浮动定位实现(jQuery/MooTools)
Aug 23 Javascript
javascript中字符串拼接详解
Sep 26 Javascript
js获取字符串字节数方法小结
Jun 09 Javascript
四种参数传递的形式——URL,超链接,js,form表单
Jul 24 Javascript
深入理解JavaScript中的预解析
Jan 04 Javascript
angularjs ui-router中路由的二级嵌套
Mar 10 Javascript
selenium 与 chrome 进行qq登录并发邮件操作实例详解
Apr 06 Javascript
5分钟快速掌握JS中var、let和const的异同
Sep 19 Javascript
vue2.0 路由模式mode=&quot;history&quot;的作用
Oct 18 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
Jan 20 Vue.js
java和js实现的洗牌小程序
Sep 30 #Javascript
JS使用H5实现图片预览功能
Sep 30 #Javascript
在vue中使用jsx语法的使用方法
Sep 30 #Javascript
微信小程序自定义tabBar在uni-app的适配详解
Sep 30 #Javascript
详解小程序云开发攻略(解决最棘手的问题)
Sep 30 #Javascript
webpack3升级到webpack4遇到问题总结
Sep 30 #Javascript
uploadify插件实现多个图片上传并预览
Sep 30 #Javascript
You might like
PHP教程 预定义变量
2009/10/23 PHP
第五章 php数组操作
2011/12/30 PHP
phpexcel导出excel的颜色和网页中的颜色显示不一致
2012/12/11 PHP
关于php循环跳出的问题
2013/07/01 PHP
PHP之uniqid()函数用法
2014/11/03 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
浅谈json_encode用法
2015/03/05 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
PHP中PDO连接数据库中各种DNS设置方法小结
2016/05/13 PHP
PHP使用SMTP邮件服务器发送邮件示例
2018/08/28 PHP
laravel与thinkphp之间的区别与优缺点
2021/03/02 PHP
自动更新作用
2006/10/08 Javascript
该如何加载google-analytics(或其他第三方)的JS
2010/05/13 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
vue.js学习之递归组件
2016/12/13 Javascript
基于bootstrap风格的弹框插件
2016/12/28 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
JavaScript中动态向表格添加数据
2017/01/24 Javascript
JavaScript对象拷贝与赋值操作实例分析
2018/12/10 Javascript
微信小程序实现的五星评价功能示例
2019/04/25 Javascript
微信小程序自定义弹出模态框禁止底部滚动功能
2020/03/09 Javascript
[43:48]Ti4正赛第一天 VG vs NEWBEE 2
2014/07/19 DOTA
Python中每次处理一个字符的5种方法
2015/05/21 Python
Python下载懒人图库JavaScript特效
2015/05/28 Python
mac 安装python网络请求包requests方法
2018/06/13 Python
Python 获取div标签中的文字实例
2018/12/20 Python
Python 求数组局部最大值的实例
2019/11/26 Python
matplotlib自定义鼠标光标坐标格式的实现
2021/01/08 Python
使用CSS3实现SVG路径描边动画效果入门教程
2019/10/21 HTML / CSS
HTML5进阶段内联标签汇总(小篇)
2016/07/13 HTML / CSS
离婚案件原告代理词
2015/05/23 职场文书
导游词之永济鹳雀楼
2020/01/16 职场文书
详解Python如何批量采集京东商品数据流程
2022/01/22 Python