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 相关文章推荐
跨浏览器的事件对象介绍
Jun 27 Javascript
js用typeof方法判断undefined类型
Jul 15 Javascript
通过点击jqgrid表格弹出需要的表格数据
Dec 02 Javascript
老生常谈onBlur事件与onfocus事件(js)
Jul 09 Javascript
Bootstarp基本模版学习教程
Feb 01 Javascript
微信小程序 详解页面跳转与返回并回传数据
Feb 13 Javascript
React Js 微信禁止复制链接分享禁止隐藏右上角菜单功能
May 26 Javascript
require.js中的define函数详解
Jul 10 Javascript
Javascript中JSON数据分组优化实践及JS操作JSON总结
Dec 22 Javascript
Angular整合zTree的示例代码
Jan 24 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
May 31 Javascript
Vue axios获取token临时令牌封装案例
Sep 11 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中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
php判断当前操作系统类型
2015/10/28 PHP
Yii框架模拟组件调用注入示例
2019/11/11 PHP
深入分析PHP设计模式
2020/06/15 PHP
Javascript 更新 JavaScript 数组的 uniq 方法
2008/01/23 Javascript
动态加载图片路径 保持JavaScript控件的相对独立性
2010/09/06 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
目前流行的JavaScript库的介绍及对比
2013/09/29 Javascript
解析img图片没找到onerror事件 Stack overflow at line: 0
2013/12/23 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
JavaScript操作XML文件之XML读取方法
2015/06/09 Javascript
纯JavaScript代码实现移动设备绘图解锁
2015/10/16 Javascript
Bootstrap模块dropdown实现下拉框响应
2016/05/22 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
JS返回只包含数字类型的数组实例分析
2016/12/16 Javascript
从零开始做一个pagination分页组件
2017/03/15 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
Swiper实现轮播图效果
2017/07/03 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
微信小程序progress组件使用详解
2018/01/31 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
2019/11/13 Javascript
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
[01:32]DOTA2上海特锦赛现场采访:最想COS的英雄
2016/03/25 DOTA
python字典setdefault方法和get方法使用实例
2019/12/25 Python
Python如何创建装饰器时保留函数元信息
2020/08/07 Python
利用CSS3实现自定义滚动条代码分享
2016/08/18 HTML / CSS
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
生产车间主管岗位职责
2013/12/28 职场文书
草船借箭教学反思
2014/02/03 职场文书
深入讲解Vue中父子组件通信与事件触发
2022/03/22 Vue.js
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA