<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title>人脸采集</title>
<script src="jquery.min.js"></script>
</head>

<body>
<video src="" id="video"></video>

<button id="rec">开始录制</button>

<button id="camera">拍照</button>
<!--canvs绘制-->
<canvas width="640" height="480" id="outrec"></canvas>
<!--base64绘制-->
<img id="imgvideo" style="display:none;" width="640" height="480" src="" />

<script type="text/javascript">
var video = document.getElementById("video"); //视频dom元素

//001.开启摄像头
$('#rec').click(function() {
//视频获取
var Devicestate = navigator.mediaDevices.getUserMedia({
video: true
})

Devicestate.then(function(mediaStream) {

video.src = window.URL.createObjectURL(mediaStream);
console.log(mediaStream)
video.onloadedmetadata = function(e) {
video.play();
};

});

//用户拒绝使用,或者没有摄像头
Devicestate.catch(function(err) {
console.log(err.name);
});

});

//002.点击拍照按钮
$('#camera').click(function() {
//视频转换到canvs
var outrec = document.getElementById("outrec");
var outreccon = outrec.getContext("2d");
outreccon.drawImage(video, 0, 0, 640, 480);

var img = outrec.toDataURL("image/jpeg", 0.5)

$('#imgvideo').attr('src', img);

// 调用方式
// 参数一: 选择器,代表canvas
// 参数二: 图片名称,可选
downloadCanvasIamge('#outrec', 'imgvideo');
//关闭摄像窗口页面
setTimeout(function(){
custom_close();
},1100);

});
// 下载Canvas元素的图片
function downloadCanvasIamge(selector, name) {
   // 通过选择器获取canvas元素
   var canvas = document.querySelector(selector)
   // 使用toDataURL方法将图像转换被base64编码的URL字符串
   var url = canvas.toDataURL('image/jpeg')
   // 生成一个a元素
   var a = document.createElement('a')
   // 创建一个单击事件
   var event = new MouseEvent('click')
   
   // 将a的download属性设置为我们想要下载的图片名称,若name不存在则使用‘下载图片名称’作为默认名称
   a.download = name || '下载图片名称'
   // 将生成的URL设置为a.href属性
   a.href = url
   
   // 触发a的单击事件
   a.dispatchEvent(event)
}
//关闭摄像窗口页面
function custom_close(){
if(confirm("摄像拍照成功,确认是否关闭本窗口")){
//delete_file();
window.opener=null;
window.open('','_self');
window.close();
}else{

}
}
//关闭窗口之后删除下载的图片文件,ActiveXObject对象只能在IE浏览器创建
/*function delete_file(){
alert("删除文件");
var fso = new ActiveXObject("Scripting.FileSystemObject");
var imgHandle = fso.GetFile("C:\\Users\\yuzhangwei\\Downloads\\imgvideo.jpg"); 
imgHandle.Delete();
}*/

</script>
</body>

</html>

js调用摄像头拍照,js调用摄像头在线拍照,js调用电脑摄像头拍照相关推荐

  1. HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试

    为什么80%的码农都做不了架构师?>>>    但是navigator.getUserMediau已经从 Web 标准中删除,虽然部分浏览器可以使用,生产环境中还是要做好兼容.新的A ...

  2. 摄像头自建html直播,H5代码实现调用本地摄像头实现实时视频以及拍照功能

    效果 这是柚子皮- getUserMedia API HTML 5 的getUserMedia API提供了访问媒体的能力, 基于该特性, 开发者可以不依赖任何浏览器插件下去访问视频和音频等设备. 旧 ...

  3. Android Camera相机开发示例、Android 开发板 USB摄像头采集、定期拍照、定时拍照,安卓调用摄像头拍照、Android摄像头预览、监控,USB摄像头开发、摄像头监控代码

    我们有个需求,在机器上加个摄像头,定时拍照: 我到网上搜索,发现没有快速上手和简单使用的: 个人感觉,大部分博客写得很乱,或者长篇大论: 而我只想简单实现功能,并不打算学习多少理论: 下面代码是我写来 ...

  4. html5 android6.0摄像头,HTML5调用手机前置摄像头或后置摄像头拍照,canvas显示,经过Android测试...

    但是navigator.getUserMediau已经从 Web 标准中删除,虽然部分浏览器可以使用,生产环境中还是要做好兼容.新的API更替为MediaDevices.getUserMedia.Me ...

  5. python+opencv用电脑调用手机摄像头或其他网路摄像头

    python+opencv用电脑调用手机摄像头或其他网路摄像头 文章目录: 1 获取手机摄像头或网络摄像头的ip 1.1 获取手机摄像头的ip 1.2 获取网络摄像头的IP 1.3 关于RTSP协议 ...

  6. React Native之js调用Android原生使用Callback传递结果给js

    如果不清楚js如何调用Android原生,可以先参考我的这篇博客React Native实现js调用安卓原生代码 1 问题 上面的文章只是调用安卓原生显示Toast,但是我们一般会需要调用安卓的代码然 ...

  7. [js] axios为什么可以使用对象和函数两种方式调用?是如何实现的?

    [js] axios为什么可以使用对象和函数两种方式调用?是如何实现的? axios 源码 初始化 看源码第一步,先看package.json.一般都会申明 main 主入口文件. // packag ...

  8. wordpress 调用css,WordPress折腾记-精简CSS及JS在插件中的调用

    GD Star Rating loading... 爱折腾WP是我的一个习惯,不折腾就会手痒,哈哈~~此文仅作为一个精简CSS及JS在插件中调用的范例,其他插件的精简可以按照此文的方法来做. 众所周知 ...

  9. C#学习之 调用 AForge.NET Framework 启动摄像头

    今天开始捣鼓C#启动摄像头,之前做过用 C++调用OPENCV库启动摄像头,C#理论上也可以. 但是看了    这篇博文笔记, 顿时脑洞大开,原来可以和摄像头打交道的库有这么多啊.之前,我就直到OPE ...

  10. html+js+css 调用jquery 工人信息管理功能(增删改查)前端实现,以及调用实现鼠标拖尾粒子效果的js库

    html + js + css 调用jquery以及underscore.min.js(配合代码实现鼠标粒子效果)实现全前端信息管理基本功能(增删改查) 先附上我运行的一段视频,手机打开清晰一点或者直 ...

最新文章

  1. Java学到什么水平能够出去找工作!
  2. Cassandra数据模型设计最佳实践
  3. Vs工程高版本向低版本迁移
  4. AC日记——字符串位移包含问题 1.7 19
  5. php hash pbkdf2,PHP hash_pbkdf2 哈希(Hash)函数
  6. LoRa、蓝牙、技术在电子显示牌上的应用
  7. 我们为什么要学数学?这里给你一个答案。
  8. codeblocks使用技巧
  9. RHEL5.6更新yum源
  10. Spring 注解编程之注解属性别名与覆盖
  11. java 打包jar 命令_java jar打包命令使用
  12. 求 HCDA认证题库
  13. 【线性代数笔记】矩阵的合同关系
  14. 手机锁屏密码忘了怎么办
  15. Vunlhub_Eearth
  16. 如何将低版本的CAD转换器转换成高版本
  17. 谷粒学院(五)---Maven从入门到入魔
  18. 硬核分享:优化 “Android Studio” 编译速度的10个小技巧
  19. 关于梦想是计算机的作文英语,关于我的梦想英语作文(精选11篇)
  20. 路缘石滑模机脱离预制作业追赶施工效率

热门文章

  1. Java (计算机编程语言)
  2. WSL使用史上最详细教程
  3. 教你写一个弹幕库,确定不了解一下?,请查收
  4. 计算机专业学ROSTCM,ROST-CM软件分词和词频统计用法体验
  5. 《Java语言程序设计》(基础篇原书第10版)第十章复习题答案
  6. OpenWRT平台搭建及简单应用[转帖]+华为HG255D编译实践(20190323更新)
  7. 【Java基础教程】Java的输入输出
  8. “波斯公主选驸马”问题的理论分析和数学推导
  9. ADB 命令知多少?详细 ADB 命令大全来啦
  10. mysql数据库入门传智播客答案_MySQL数据库入门