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 相关文章推荐
获取body标签的两种方法
Oct 13 Javascript
js写的方法实现上传图片之后查看大图
Mar 05 Javascript
javascript性能优化之事件委托实例详解
Dec 12 Javascript
JS验证逗号隔开可以是中文字母数字
Apr 22 Javascript
js无法获取到html标签的属性的解决方法
Jul 26 Javascript
AngularJS 输入验证详解及实例代码
Jul 28 Javascript
BOM系列第二篇之定时器requestAnimationFrame
Aug 17 Javascript
前端构建工具之gulp的配置与搭建详解
Jun 12 Javascript
JointJS流程图的绘制方法
Dec 03 Javascript
JS监听滚动和id自动定位滚动
Dec 18 Javascript
JS闭包经典实例详解
Dec 20 Javascript
微信小程序手动添加收货地址省市区联动
May 18 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产生不重复随机数的5个方法总结
2014/11/12 PHP
PHP+MYSQL实现用户的增删改查
2015/03/24 PHP
PHP实现微信小程序用户授权的工具类示例
2019/03/05 PHP
thinkPHP5.1框架路由::get、post请求简单用法示例
2019/05/06 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
js闭包的用途详解
2014/11/09 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
js中的面向对象入门
2017/03/06 Javascript
Node.js之网络通讯模块实现浅析
2017/04/01 Javascript
17道题让你彻底理解JS中的类型转换
2019/08/08 Javascript
微信小程序表单验证WxValidate的使用
2019/11/27 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
解决vue addRoutes不生效问题
2020/08/04 Javascript
JavaScript实现京东快递单号查询
2020/11/30 Javascript
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
Python脚本获取操作系统版本信息
2016/12/17 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
Python 判断奇数偶数的方法
2018/12/20 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
Python 如何在字符串中插入变量
2020/08/01 Python
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
2013/04/24 HTML / CSS
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
捷克领先的户外服装及配件市场零售商:ALPINE PRO
2018/01/09 全球购物
毕业生学校推荐信范文
2014/05/21 职场文书
年终奖发放方案
2014/06/02 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
竞选班干部演讲稿600字
2014/08/20 职场文书
大专生自我鉴定怎么写
2014/09/16 职场文书
Python数据分析入门之数据读取与存储
2021/05/13 Python