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增加和删除元素的方法
Jan 14 Javascript
JS+CSS实现感应鼠标渐变显示DIV层的方法
Feb 20 Javascript
jQuery模拟窗口抖动效果
Mar 15 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
Jun 04 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
Jun 29 Javascript
利用weixin-java-miniapp生成小程序码并直接返回图片文件流的方法
Mar 29 Javascript
详解如何在vue项目中使用layui框架及采坑
May 05 Javascript
Vue监听页面刷新和关闭功能
Jun 20 Javascript
微信小程序之侧边栏滑动实现过程解析(附完整源码)
Aug 23 Javascript
javascript实现函数柯里化与反柯里化过程解析
Oct 08 Javascript
LayUi数据表格自定义赋值方式
Oct 26 Javascript
javscript 数组扁平化的实现
Feb 03 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
德生BCL3000的电路分析和打磨
2021/03/02 无线电
PHP安全配置
2006/12/06 PHP
ZF等常用php框架中存在的问题
2008/01/10 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
解析PHP的Yii框架中cookie和session功能的相关操作
2016/03/17 PHP
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
javascript实现的登陆遮罩效果汇总
2015/11/09 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
nodejs开发微信小程序实现密码加密
2017/07/11 NodeJs
vuex进阶知识点巩固
2018/05/20 Javascript
javacript replace 正则取字符串中的值并替换【推荐】
2018/09/13 Javascript
jQuery时间戳和日期相互转换操作示例
2018/12/07 jQuery
详解javascript replace高级用法
2019/02/17 Javascript
微信小程序搭建自己的Https服务器
2019/05/02 Javascript
解决Idea、WebStorm下使用Vue cli脚手架项目无法使用Webpack别名的问题
2019/10/11 Javascript
numpy.delete删除一列或多列的方法
2018/04/03 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
Python实现自动装机功能案例分析
2020/10/22 Python
Under Armour西班牙官网:美国知名的高端功能性运动品牌
2018/12/12 全球购物
经典导游欢迎词大全
2014/01/16 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
会计专业毕业生求职信
2014/07/04 职场文书
关于保护环境的建议书
2014/08/26 职场文书
十佳少先队员演讲稿
2014/09/12 职场文书
春季运动会开幕词
2015/01/28 职场文书
工程部岗位职责
2015/02/10 职场文书
2015年档案管理工作总结
2015/04/08 职场文书
离婚案件答辩状
2015/05/22 职场文书
2015秋季幼儿园开学通知
2015/07/16 职场文书
八年级语文教学反思
2016/03/03 职场文书