vue 二维码+条形码识别

 

需求及说明:

  1. web端 ,识别图片中,二维码和条形码
  2. 识别信息可能有重叠需要合并后去重
  3. 二维码和条形码在同一张图片上(编写代码暂无冲突)

说明:二维码、条形码分开说明分析

二维码:

//使用npm安装qrcode-decoder
npm install qrcode-decoder --registry=https://registry.npm.taobao.org
// 引入qrcode-decoder  单独js文件或者写在当前使用文件都可(当前文件中需改为函数形式)
import QrCode from 'qrcode-decoder'

// 传入file对象,返回promise
export function getQrUrl(file) {
	//使用这个方法或者下面被注释的方法设置浏览器读取文件方式,chrome和ie有效,其他浏览器没测试
    const URi = window.webkitURL.createObjectURL(file) ||  window.URL.createObjectURL(file)

    const url = URi
    // 初始化
    const qr = new QrCode()
    // 解析二维码,返回promise
    return qr.decodeFromImage(url)
}
	// 二维码识别  使用时触发的函数
	resolveQR(event) {
	      const result =getQrUrl(event.file)
	      result.then(res => {
	        if (res.data) {
	          console.log(res.data,'二维码内容')
	        } else {
				console.log('识别二维码失败, 请重新上传')
	        }
	      }).catch(err => {
			console.log(JSON.stringify(err))
	      })
	},

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Vue3 中结合 TypeScript 使用二维码插件,首先你需要确保安装了 VueVue Router 和一个支持 TypeScript 的二维码生成库,比如 `vue-qrcode-generator` 或者 `qrcode.react`。 1. 安装依赖: ```bash npm install vue --save # 如果未安装 Vue npm install vue-router --save # 用于路由管理 npm install vue-qrcode-generator # 或者 npm install qrcode.react react-dom ``` 2. 引入 TypeScript 类型定义(tsconfig.json): ```json { "compilerOptions": { "module": "ESNext", "target": "ESNext", "lib": ["DOM", "DOM.iterable", "ESNext"], "types": ["vue", "vue-router"], // 添加对 VueVue Router 的类型支持 "strict": true, "esModuleInterop": true }, "include": ["src/**/*.ts", "src/**/*.d.ts"] } ``` 3. 在 Vue 组件中使用二维码插件: ```typescript import { Component, Vue } from 'vue'; import QRCode from 'vue-qrcode-generator'; // 或者 import QrReader from 'qrcode.react'; @Component({ components: { QRCodeComponent: QRCode, // 或者如果你用的是 qrcode.react QrReaderComponent: QrReader } }) export default class YourComponent extends Vue { codeToGenerate = 'https://example.com'; // 你要生成的二维码内容 mounted() { this.generateQRCode(); } generateQRCode() { // 使用插件方法生成二维码 const qrCode = new QRCode(this.$refs.qrcodeElement, { text: this.codeToGenerate, size: 100, // 可调整二维码大小 typeNumber: 4, // 根据需求设置二维码版本 errorCorrectionLevel: 'L', // 错误纠正级别 }); // 更新 QR 代码后可能需要调用更新方法 qrCode.update(); } } ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值