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 相关文章推荐
Javascript下IE与Firefox下的差异兼容写法总结
Jun 18 Javascript
js中indexof的用法详细解析
Dec 24 Javascript
多引号嵌套的变量命名的问题
May 09 Javascript
JQuery EasyUI的使用
Feb 24 Javascript
快速掌握jQuery插件WebUploader文件上传
Nov 07 Javascript
js图片轮播手动切换特效
Jan 12 Javascript
Bootstrap表单控件学习使用
Mar 07 Javascript
ES6入门教程之let和const命令详解
May 17 Javascript
详解angular笔记路由之angular-router
Sep 12 Javascript
javascript网页随机点名实现过程解析
Oct 15 Javascript
js消除图片小游戏代码
Dec 11 Javascript
微信小程序学习总结(三)条件、模板、文件引用实例分析
Jun 04 Javascript
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 基于文件头的文件类型验证类函数
2012/05/01 PHP
为你总结一些php系统类函数
2015/10/21 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
Yii2框架中日志的使用方法分析
2017/05/22 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
基于jquery的修改当前TAB显示标题的代码
2010/12/11 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
JS小功能(offsetLeft实现图片滚动效果)实例代码
2013/11/28 Javascript
js setTimeout()函数介绍及应用以倒计时为例
2013/12/12 Javascript
nodejs爬虫抓取数据乱码问题总结
2015/07/03 NodeJs
JQuery悬停控制图片轮播——代码简单
2015/08/05 Javascript
JavaScript添加随滚动条滚动窗体的方法
2016/02/23 Javascript
jQuery实现的自动加载页面功能示例
2016/09/04 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
AngularJS实用基础知识_入门必备篇(推荐)
2017/07/10 Javascript
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
JS实现的走迷宫小游戏完整实例
2017/07/19 Javascript
vue loadmore 组件滑动加载更多源码解析
2017/07/19 Javascript
浅谈vue-router2路由参数注意的问题
2017/11/08 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
详解vue中的computed的this指向问题
2018/12/05 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
[18:20]DOTA2 HEROS教学视频教你分分钟做大人-昆卡
2014/06/11 DOTA
python清除字符串中间空格的实例讲解
2018/05/11 Python
python之mock模块基本使用方法详解
2019/06/27 Python
Python利用matplotlib做图中图及次坐标轴的实例
2019/07/08 Python
Python时间差中seconds和total_seconds的区别详解
2019/12/26 Python
Python实现上下文管理器的方法
2020/08/07 Python
环境工程专业毕业生求职信
2014/09/30 职场文书
党的群众路线教育实践活动个人整改措施
2014/10/27 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
消夏晚会主持词
2015/06/30 职场文书
2015年安全生产月工作总结
2015/07/27 职场文书
Python socket如何解析HTTP请求内容
2022/02/12 Python
MySQL普通表如何转换成分区表
2022/05/30 MySQL