python调用手机摄像头识别二维码_JS调用安卓手机摄像头扫描二维码
项目要求:
使用H5模仿微信扫一扫付款功能
经过一系列的查找最后发现可以使用 JS调用手机摄像头然后用画布把当前摄像头的数据转成Base64的png图片,经过QrCode直接再本地识别。
优点:
兼容大多数浏览器
本地识别不占用服务端资源
代码比较简单只有一个页面
Web QrCode Test
//初始化媒体对象
var c=0;
var video = document.getElementById('video'),
canvas = document.getElementById('canvas'),
img = document.getElementById('img'),
vendorUrl = window.URL || window.webkitURL;
//媒体对象
navigator.getMedia = navigator.getUserMedia ||
navagator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
navigator.getMedia({
video: true, //使用摄像头对象
audio: false //不适用音频
}, function(strem){
console.log(strem);
video.src = vendorUrl.createObjectURL(strem);
video.play();
}, function(error) {
//error.code
console.log(error);
});
//启动定时器
setTimeout("actionP(null)","1000");
//定时器
function actionP(data){
if(data==null){
Screenshot()
}else{
if(data!=null & data!="error decoding QR Code"){//识别出数据
if(data.indexOf("http")!=-1){
window.location.href=data;
}else alert(data);
}else{//没有数据循环十次
c++;
if(c<10){
setTimeout("actionP(null)","1000");
}
}
}
}
function Screenshot(){//截取图像
canvas.getContext('2d').drawImage(video, 0, 0, 400, 400);
var imgData = canvas.toDataURL("image/png");
load(imgData);
img.src=imgData;
}
识别二维码
function dragenter(e) {
e.stopPropagation();
e.preventDefault();
}
function dragover(e) {
e.stopPropagation();
e.preventDefault();
}
function drop(e) {
e.stopPropagation();
e.preventDefault();
var dt = e.dataTransfer;
var files = dt.files;
}
function load(name)
{
initCanvas(640,480);
//识别二维码并回调方法
qrcode.callback = actionP;
qrcode.decode(name);
}
function initCanvas(ww,hh)//创建画板
{
gCanvas = document.getElementById("qr-canvas");
gCanvas.addEventListener("dragenter", dragenter, false);
gCanvas.addEventListener("dragover", dragover, false);
gCanvas.addEventListener("drop", drop, false);
var w = ww;
var h = hh;
gCanvas.style.width = w + "px";
gCanvas.style.height = h + "px";
gCanvas.width = w;
gCanvas.height = h;
gCtx = gCanvas.getContext("2d");
gCtx.clearRect(0, 0, w, h);
imageData = gCtx.getImageData( 0,0,320,240);
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
python调用手机摄像头识别二维码_JS调用安卓手机摄像头扫描二维码相关推荐
- android系统密码设置功能,手机锁屏密码怎么设置 三种安卓手机锁屏方式推荐
手机中有很多应用都是与金钱挂钩,特别是微信与支付宝等等既涉及到隐私又与财产关联,这是后手机的安全就尤为重要的,而手机的锁屏密码就是一道最基本的防护措施,那么手机锁屏密码怎么设置?来看看小编推荐的三种安 ...
- 安卓手机配哪款蓝牙耳机?最适合安卓手机的蓝牙耳机
蓝牙耳机火了之后,各个品牌就开始涌现,就连手机厂家也开始涉足蓝牙耳机领域.安卓手机这几年也是受到很多人的喜爱,那么安卓手机应该怎么选择蓝牙耳机呢?下面我们一起来看看当前值得入手的蓝牙耳机吧! 第一款: ...
- Java通过二维码下载Apk====安卓手机
需求:通过二维码下载apk文件 1,创建springboot项目(新建maven项目) 2.创建包和类 3.源码 import org.springframework.stereotype.Contr ...
- 解决安卓版微信扫描二维码白屏的问题
今天遇到一个问题,做的网站,通过安卓手机微信扫一扫二维码或者识别二维码链接无法跳转,显示白屏,但是ios的微信扫码就没有问题,一开始认为是安卓版微信做了限制,后来分析了下扫码后跳转的链接,发现了这个问 ...
- 小米10四如何测试手机性能软件,安兔兔4月安卓手机性能榜:OPPO垄断前二 小米10 Pro第四...
5月6日,安兔兔发布了4月安卓手机性能榜.榜单显示,OPPO两款Find系列机型垄断前二,iQOO Neo3排名第三,小米10 Pro位列第四. 随着又一波骁龙865机型的发布,本月旗舰榜单前十位又发 ...
- 安卓手机主题软件_超小型软件,安卓手机必备
点击上方"软件严选",设为星标 黑科技软件,第一时间送达 全能老司机已改名为软件严选,依旧每天为大家提供黑科技严选软件~ 由于公众号改版,现在的公众号消息已经不再按照时间顺序排送了 ...
- vivo是安卓手机吗_vivo新机Y73s评测:谁说买手机一定要买旗舰机?_安卓手机
2020-10-24 21:06:200点赞0收藏0评论 创作立场声明:今年的手机的主旋律仍然是5G,毕竟,仍然有一些手机是没有5G功能的. 今年的手机的主旋律仍然是5G,毕竟,仍然有一些手机是没有5 ...
- 小米手机不弹出usb连接设置_安卓手机数据备份教程(华为、小米、oppo、vivo)...
目前国产手机占比较高,而且各大手机产商非常人性化,提供数据备份功能,因此换机以及刷机都不会让人很犹豫.三星以及sony这种品牌明显水土不服,不建议使用. 目录: OPPO 华为 小米 vivo opp ...
- android手机是否root,已经2017年了,安卓手机还需要Root吗?
Android是目前世界上最流行的操作系统,而且基于该系统的设备在全球范围内处于统治级地位.不过,对于很多安卓手机用户来说,root这个词对他们十分陌生,甚至成为过去式.不过,早在2014年的时候曾有 ...
- android手机内存这么大,专业解读:为什么安卓手机的内存越来越大?
原标题:专业解读:为什么安卓手机的内存越来越大? 首先,本文所说的内存即我们通常意义上所称的运行内存RAM,而非储存内存ROM.简单点来说,就是我们平常见到的6G+64G.8G+128G中前面的6G/ ...
最新文章
- Android10.0 Binder通信原理(四)-Native-C\C++实例分析
- vb.net 2019-机器学习ml.net情绪分析(3)
- 与计算机相关的社团活动,计算机社团活动记录.doc
- java is start_PHP IntlChar::isJavaIDStart()用法及代码示例
- 收藏 | 三张图读懂机器学习:基本概念、五大流派与九种常见算法
- sql左外连接和右外连接的区别
- linux libstdc 怎样升级,linux 更新libstdc++.so.6
- hibernate教程笔记1
- iOS中关于文件操作
- mac brew加速
- Python爬取《你好,李焕英》电影影评并制作词云图
- 特殊教育学校计算机教学计划,2017年特殊教育学校教学计划
- php实现 三角形_HTML纯CSS绘制三角形(各种角度)
- maximo跟java_maximo中直接应用得到数据库联接
- PHPMyWind后台登录密码忘记的解决办法
- 手机敬业签App怎么快速添加便签内容?
- android手机整体规模,2021年Android手机市场规模
- JustLaws 法律文库贡献指南
- C#:DataGridView边框线、标题、单元格的各种颜色
- 易语言-寻找文本和寻找字节集的区别