当前位置: 首页 > news >正文

vue3使用jsQR解析二维码

1.了解jsQR

jsQR是一个纯javascript脚本实现的二维码识别库,不仅可以在浏览器端使用,而且支持后端node.js环境。jsQR使用较为简单,有着不错的识别率。

2.效果图

请添加图片描述

3.二维码

在这里插入图片描述

4.下载jsqr

npm i -d jsqr

5.代码

<script setup>
import { ref } from 'vue'
import jsQR from "jsqr";const codeVal = ref('');function decodeQRCode(image) {//创建画布const canvas = document.createElement('canvas');const context = canvas.getContext('2d');canvas.width = image.width;canvas.height = image.height;//把二维码画上去context.drawImage(image, 0, 0, canvas.width, canvas.height);const imageData = context.getImageData(0, 0, canvas.width, canvas.height);//jsQR识别出来console.log('识别前的数据',imageData.data, imageData.width, imageData.height, 
);const decodedResult = jsQR(imageData.data, imageData.width, imageData.height, {inversionAttempts: 'dontInvert',});if (decodedResult) {//返回识别结果return decodedResult.data} else {window.alert('未识别到二维码!')return ''}
}function upload() {let input = document.querySelector('#input')const file = input.files[0]console.log('文件是什么',file);if (file) {const reader = new FileReader();reader.onload = (e) => {const image = new Image();image.src = e.target.result;image.onload = () => {let code = decodeQRCode(image);console.log(code)//识别结果 codeVal.value = code;};};reader.readAsDataURL(file);}
}</script><template><!-- <button @click="$refs.input.click()">识别</button> --><input type="file"  id="input" ref="input" @change="upload"><div>识别结果:{{codeVal}}</div><!-- <input type="file" style="display: none" id="input" @input="upload"> -->
</template>
http://www.lryc.cn/news/335311.html

相关文章:

  • 李廉洋:4.10黄金原油早间走势最新分析及策略。
  • Kotlin作用域函数:let、also、run、apply、with
  • 鸿蒙ArkUI开发学习:【渲染控制语法】
  • https的配置和使用(以腾讯云为例)
  • STC89C52学习笔记(七)
  • 嵌入式|蓝桥杯STM32G431(HAL库开发)——CT117E学习笔记16:蓝桥杯编程手册
  • doris2.0.7 安装
  • 智慧园区水电能源监控管理系统
  • Kafka基础/1
  • Jupyter Notebook中常见的快捷键
  • 《前端面试题》- JS基础 - call()、apply()、bind() 的区别
  • 开源软件技术社区方案
  • 【开源书籍】深入讲解内核网络、Kubernetes、ServiceMesh、容器等云原生相关技术。
  • 【C语言】“vid”Microsoft Visual Studio安装及应用(检验内存泄露)
  • Accuracy准确率,Precision精确率,Recall召回率,F1 score
  • 系统架构最佳实践 -- 智慧图书管理系统架构设计
  • 网络基础三——IP协议补充和Mac帧协议
  • 人工智能——深度学习
  • postgresql uuid
  • 【azure笔记 1】容器实例管理python sdk封装
  • Nestjs 中定义既可以捕获错误(Error)和又可以异常(Exception)的过滤器
  • GitHub 仓库 (repository) Branch - SSH clone URL - Clone in Desktop - Download ZIP
  • Training - 使用 WandB 配置 可视化 模型训练参数
  • N1922A是德科技N1922A功率传感器
  • 最简洁的Docker环境配置
  • Docker内更新Jenkins详细讲解
  • 基于遗传模拟退火混合优化算法的车间作业最优调度matlab仿真,输出甘特图
  • Mac 安装 brew brew cask 遇到的问题以及解决办法
  • Vitalik Buterin香港主旨演讲:协议过去10年迅速发展,但存在效率、安全两大问题
  • 【leetcode】大数相加