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基础知识filter()和find()实例说明
Jul 06 Javascript
js实现上传图片之上传前预览图片
Mar 25 Javascript
Jquery.addClass始终无效原因分析
Sep 08 Javascript
随鼠标上下滚动的jquery代码
Dec 05 Javascript
angularjs实现与服务器交互分享
Jun 24 Javascript
JS实现带关闭功能的阿里妈妈网站顶部滑出banner工具条代码
Sep 17 Javascript
第一次接触神奇的Bootstrap基础排版
Jul 26 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
Feb 26 Javascript
js is_valid_filename验证文件名的函数
Jul 19 Javascript
VUE2.0+Element-UI+Echarts封装的组件实例
Mar 02 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
May 10 Javascript
webpack打包html里面img后src为“[object Module]”问题
Dec 22 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使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
laravel实现上传图片并在页面显示的例子
2019/10/14 PHP
jQuery代码优化 选择符篇
2011/11/01 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
去掉gridPanel表头全选框的小例子
2013/07/18 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
JavaScript脚本库编写的方法
2015/12/09 Javascript
Javascript复制实例详解
2016/01/28 Javascript
搞定immutable.js详细说明
2016/05/02 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
JS实现数字格式千分位相互转换方法
2016/08/01 Javascript
vue2 前后端分离项目ajax跨域session问题解决方法
2017/04/27 Javascript
微信小程序图片宽100%显示并且不变形
2017/06/21 Javascript
Angular中的$watch、$watchGroup、$watchCollection
2017/06/25 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
jquery实现侧边栏左右伸缩效果的示例
2017/12/19 jQuery
详解给Vue2路由导航钩子和axios拦截器做个封装
2018/04/10 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
Vue开发中常见的套路和技巧总结
2020/11/24 Vue.js
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
Windows系统配置python脚本开机启动的3种方法分享
2015/03/10 Python
Python线程的两种编程方式
2015/04/14 Python
Python 如何访问外围作用域中的变量
2016/09/11 Python
由浅入深讲解python中的yield与generator
2017/04/05 Python
python3使用requests模块爬取页面内容的实战演练
2017/09/25 Python
python 对多个csv文件分别进行处理的方法
2019/01/07 Python
linux安装python修改默认python版本方法
2019/03/31 Python
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
python通过opencv实现图片裁剪原理解析
2020/01/19 Python
颁奖典礼主持词
2014/03/25 职场文书
交通运输局四风问题对照检查材料思想汇报
2014/10/09 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js