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 相关文章推荐
[原创]后缀就扩展名为js的文件是什么文件
Dec 06 Javascript
javascript 跳转代码集合
Dec 03 Javascript
推荐20家国外的脚本下载网站
Apr 28 Javascript
javascript中的if语句使用介绍
Nov 20 Javascript
Angular中的Promise对象($q介绍)
Mar 03 Javascript
JavaScript实现图片DIV竖向滑动的方法
Apr 25 Javascript
JS数组操作之增删改查的简单实现
Aug 21 Javascript
JS实现非首屏图片延迟加载的示例
Jan 06 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
Aug 14 Javascript
vue生命周期与钩子函数简单示例
Mar 13 Javascript
layui使用数据表格实现购物车功能
Jul 26 Javascript
微信小程序 腾讯地图显示偏差问题解决
Jul 27 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
介绍几个array库的新函数 php
2006/12/29 PHP
Zend studio文件注释模板设置方法
2013/09/29 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
PHP+AJAX实现投票功能的方法
2015/09/28 PHP
PHP页面跳转操作实例分析(header方法)
2016/09/28 PHP
php实现遍历文件夹的方法汇总
2017/03/02 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
jquery 使用点滴函数代码
2011/05/20 Javascript
js打造数组转json函数
2015/01/14 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
js实现滑动触屏事件监听的方法
2015/05/05 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
vue打包的时候自动将px转成rem的操作方法
2018/06/20 Javascript
vue最简单的前后端交互示例详解
2018/10/11 Javascript
详解vue中localStorage的使用方法
2018/11/22 Javascript
vue-cli2.0转3.0之项目搭建的详细步骤
2018/12/11 Javascript
使用p5.js临摹动态图片
2019/11/04 Javascript
[01:16]2014DOTA2 TI专访C9战队EE:中国五强中会占三席
2014/07/10 DOTA
Python 一键制作微信好友图片墙的方法
2019/05/16 Python
Python 循环终止语句的三种方法小结
2019/06/24 Python
python搜索包的路径的实现方法
2019/07/19 Python
Django ModelForm操作及验证方式
2020/03/30 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
亚马逊加拿大网站:Amazon.ca
2020/01/06 全球购物
《金色的脚印》教后反思
2014/04/23 职场文书
现场活动策划方案
2014/08/22 职场文书
离职报告范文
2014/11/04 职场文书
保送生自荐信
2015/03/06 职场文书
2015年数学教研组工作总结
2015/05/23 职场文书
PyTorch梯度裁剪避免训练loss nan的操作
2021/05/24 Python
Python实现列表拼接和去重的三种方式
2021/07/02 Python
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python