Html5QRCode扫描条形码+二维码

news/2024/11/8 9:52:09/文章来源:https://www.cnblogs.com/dzw159/p/18534497

代码:

<html>
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>scan</title><style>button {display: block;width: 100%;margin: 6px;outline: none;height: 40px;line-height: 40px;color: #fff;background-color: #26a2ff;text-align: center;border-radius: 4px;border: none;cursor: pointer;}#qr-input-file {opacity: 0;filter: alpha(opacity=0);display: inline-block;width: 100%;height: 100%;}#upload-text {position: relative;bottom: 40px;user-select: none;}</style><script src="~/easyui/jquery.min.js"></script><script src="~/scan/html5-qrcode.min.js"></script>
</head>
<body><button id="refresh">刷新</button><button id="scan">使用相机扫一扫方式</button><button id="useLocal"><input type="file" id="qr-input-file" accept="image/*" value="使用文件方式"><span id="upload-text">使用文件方式</span></button><H3 id="readResult"></H3><div id="reader" width="600px"></div>
</body>
<script>function onScanSuccess(decodedText, decodedResult) {$('#readResult').html(decodedText + ":" + decodedResult);}function onScanFailure(error) {$('#readResult').html(error);}$(function () {$('#refresh').click(function () {location.reload();});$('#scan').click(function () {$('#readResult').html("");const html5QrCode = new Html5Qrcode("reader");const qrCodeSuccessCallback = (decodedText, decodedResult) => {/* handle success */$('#readResult').html("扫描成功:" + decodedText);//关闭摄像头html5QrCode.stop().then((ignore) => {// QR Code scanning is stopped.}).catch((err) => {// Stop failed, handle it.
                });};const config = { fps: 10, qrbox: { width: 250, height: 250 } };// If you want to prefer front camera//html5QrCode.start({ facingMode: "user" }, config, qrCodeSuccessCallback);// If you want to prefer back camerahtml5QrCode.start({ facingMode: "environment" }, config, qrCodeSuccessCallback);// Select front camera or fail with `OverconstrainedError`.//html5QrCode.start({ facingMode: { exact: "user"} }, config, qrCodeSuccessCallback);// Select back camera or fail with `OverconstrainedError`.//html5QrCode.start({ facingMode: { exact: "environment"} }, config, qrCodeSuccessCallback);
})//选择文件扫描$('#qr-input-file').change(function (e) {$('#readResult').html("");const html5QrCode = new Html5Qrcode("reader");if (e.target.files.length == 0) {// No file selected, ignorereturn;}const imageFile = e.target.files[0];// Scan QR Codehtml5QrCode.scanFile(imageFile, true).then(decodedText => {// success, use decodedText//console.log(decodedText);$('#readResult').html(decodedText);$('#qr-input-file').val('');}).catch(err => {// failure, handle it.
                    console.log(`Error scanning file. Reason: ${err}`)$('#readResult').html("扫描错误:" + err);});});})
</script>
</html>

 

效果:

 

 

 

参阅:https://scanapp.org/html5-qrcode-docs/docs/apis/classes/Html5Qrcode#start(官网)

https://blog.csdn.net/qq_60654563/article/details/140920510

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/828704.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(三)死锁检测和解除

(三)死锁检测和解除 ‍ ​​ ‍(1)死锁的检测 ​​ 理解:在这个图中,以 P2 和 R1 间的箭头为例,表明实际上 P2 请求了两个 R1 资源,但 R1 只给他分配了1个资源。 ‍ 重点:最后能将边全部消除,则没有死锁发生。否则,仍然有边连着且消除不掉的进程则发生了死锁。(可完…

Microsoft Office 2019 (office全家桶)for Mac/Windows电脑安装包

Microsoft Office 2019 for Mac(Office全家桶)是一款功能全面且强大的办公软件套件,专为Mac用户设计。Mac苹果电脑下载:Office 2019 (含激活秘钥) Windows电脑下载:Office 2019(含批量许可) 以下是其主要特点和优势:一、界面设计采用了Mac系统的设计风格,界面简洁大方…

大模型-大模型-架构设计-6种设计模式-09

目录1. 路由分发架构模式2. 代理架构模式3. 基于缓存的微调架构模式4.面向目标的 Agent 架构模式5. Agent 智能体组合架构模式6. 双重安全架构设计模式 架构设计模式已成为程序员的重要技能。然而,当我们转向大模型应用领域,情况可能会有所不同。面对新兴技术,比如:生成式 …

死锁的处理策略

死锁的处理策略 ​​

信号量机制

信号量机制 1965年由荷兰学者 Dijkstra 提出 ​​ ‍一、概念 用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。 信号量甚实就是一个变量(可以是一个整数,也可以是更复杂的(数据结构)记录型变量),可以用一个信号量…

RAC:无训练持续扩展,基于检索的目标检测器 | ECCV24

来源:晓飞的算法工程笔记 公众号,转载请注明出处论文: Online Learning via Memory: Retrieval-Augmented Detector Adaptation论文地址:https://arxiv.org/abs/2409.10716创新点提出一种通过检索增强分类过程的创新在线学习框架RAC,与传统的基于离线训练/微调的方法相比,…

信号量实现进程互斥、同步、前驱关系

信号量实现进程互斥、同步、前驱关系 ‍ ​​ ‍​​​ P、V 操作必须成对出现。缺少 P(mutex) 就不能保证临界资源的互斥访问。缺少 V(mutex) 会导致资源永不被释放,等待进程永不被唤醒。 ‍ 一、实现进程互斥 注:下图中的第一行对信号量的初始化只是简化写法,并不严格遵循…

Git推送报错Authentication failed

在某一次的Git推送中出现了一个奇怪的报错Authentication failed,经过一番测试有可能是VSCode的Git插件所导致的问题,本文提供了一个在VSCode的Terminal中可以正常push的解决方案。问题背景 在某一次的Git推送时,配置好commit信息之后,执行push操作的时候出现了这样的一个报…

iOS微信授权登录中Universal Link(通用链接)的配置

配置Unuversal Links 1.苹果开发者账号打开配置2.配置JSON文件,创建一个空白文件(必须纯文本,命名为apple-app-site-association,去除后缀名)。这里建议让后台人员在其本地创建,避免文件传输时,文件自动被更改格式、后缀自动添加等问题{"applinks": {"ap…

充电桩着火预警系统

充电桩着火预警系统利用现场监控摄像头,充电桩着火预警系统对新能源汽车充电场景进行7*24小时实时监测,自动发现监控区域范围内的异常烟雾和火灾事故苗头,大大减少了人为因素导致的误报和漏报现象。同时,系统还会自动记录报警信息和处理过程,为后续的故障排查和责任追溯提…

小区消防通道堵塞监测识别系统

小区消防通道堵塞监测识别系统利用现场监控摄像头对消防安全通道进行实时监测。小区消防通道堵塞监测识别系统通过先进的图像处理技术和深度学习算法,系统能够准确识别出消防通道是否被车辆、杂物等占据或阻塞。一旦监测到异常情况,系统会立刻发出告警信息,通过声光报警、短…

2个月搞定计算机二级C语言——真题(10)解析

1. 前言 本篇我们讲解2个月搞定计算机二级C语言——真题102. 程序填空题 2.1 题目要求2.2 提供的代码 #include <stdio.h> #pragma warning (disable:4996) double fun(double x[], int n) {int i, k = 0;double avg = 0.0, sum = 0.0;for (i = 0; i < n; i++)avg +…