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 相关文章推荐
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
Jul 19 Javascript
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
Apr 12 Javascript
Javascript变量函数浅析
Sep 02 Javascript
JavaScript使用RegExp进行正则匹配的方法
Jul 11 Javascript
前端构建工具之gulp的配置与搭建详解
Jun 12 Javascript
jQuery扇形定时器插件pietimer使用方法详解
Jul 18 jQuery
JS排序算法之希尔排序与快速排序实现方法
Dec 12 Javascript
Vue组件通信之Bus的具体使用
Dec 28 Javascript
关于Vue项目跨平台运行问题的解决方法
Sep 18 Javascript
解决layui下拉框监听问题(监听不到值的变化)
Sep 28 Javascript
javascript实现商品图片放大镜
Nov 28 Javascript
vue实现列表滚动的过渡动画
Jun 29 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站内搜索关键词变亮的实现方法
2014/12/30 PHP
php+mysqli实现将数据库中一张表信息打印到表格里的方法
2015/01/28 PHP
前端开发的开始---基于面向对象的Ajax类
2010/09/17 Javascript
Javascript根据指定下标或对象删除数组元素
2012/12/21 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
Python脚本后台运行的几种方式
2015/03/09 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
node.js插件nodeclipse安装图文教程
2020/10/19 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
瀑布流的实现方式(原生js+jquery+css3)
2020/06/28 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
利用yarn实现一个webpack+react种子
2016/10/25 Javascript
实例解析jQuery工具函数
2016/12/01 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
用原生JS实现简单的多选框功能
2017/06/12 Javascript
Angular4实现鼠标悬停3d倾斜效果
2017/10/25 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
详解node.js创建一个web服务器(Server)的详细步骤
2021/01/15 Javascript
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
python编码最佳实践之总结
2016/02/14 Python
python实现简易通讯录修改版
2018/03/13 Python
python psutil库安装教程
2018/03/19 Python
解决Python2.7读写文件中的中文乱码问题
2018/04/12 Python
python+pandas+时间、日期以及时间序列处理方法
2018/07/10 Python
通过shell+python实现企业微信预警
2019/03/07 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
详解pandas赋值失败问题解决
2020/11/29 Python
CSS3弹性盒模型flex box快速入门心得(必看篇)
2016/05/24 HTML / CSS
西班牙土拨鼠床垫公司,感觉在云端:Marmota
2019/03/18 全球购物
先进德育工作者事迹材料
2014/01/24 职场文书
淘宝好评语句大全
2014/12/31 职场文书
安全保证书怎么写
2015/02/28 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
网聊搭讪开场白
2015/05/28 职场文书