jsQRJavaScript 二维码解析库

联合创作 · 2023-09-30 12:55

jsQR 是一个纯 JavaScript 二维码解析库。该库读取原始图像或者是摄像头,并将定位,提取和解析其中的任何QR码。Apache License 2.0协议。jsQR旨在成为一个完全独立的扫描QR码库。根据设计,它不包含任何特定于平台的代码。这使得它可以轻松扫描前端网络摄像头流,用户上传的图像,或者用作后端Node.js过程的一部分。如果要使用jsQR扫描网络摄像头流,则需要ImageData从视频流中提取。然后可以将其传递给jsQR。

快速上手

  • 安装(npm)
npm install jsqr --save
// ES6 import
import jsQR from "jsqr";
// CommonJS require
const jsQR = require("jsqr");
jsQR(...);
  • 浏览器
<script src="jsQR.js"></script>
<script>
 jsQR(...);
</script>
  • 用法

jsQR导出一个方法,该方法接受3个参数,表示您要解码的图像数据。另外,可以使用选项对象来进一步配置扫描行为。

const code = jsQR(imageData,width,height,options ?);
if(code){
 console.log(“找到二维码”,code);
}

参数

  • imageData- Uint8ClampedArray表单中的一个RGBA像素值[r0, g0, b0, a0, r1, g1, b1, a1, ...]。因此,这个数组的长度应该是4 * width * height。此数据与ImageData接口的格式相同,并且通常 由节点模块返回以读取图像。
  • width - 要解码的图像的宽度。
  • height - 要解码的图像的高度。
  • options (可选) - 附加选项。
  • inversionAttempts

- ( attemptBoth(默认), dontInvert,onlyInvert或invertFirst)

- 应jsQR试图反转图像找到与黑色背景而不是白色背景上的黑色模块白色模块QR码。此选项默认attemptBoth为向后兼容性但会导致性能下降约50%,并且可能dontInvert在将来的版本中默认为。

返回值

如果QR能够被解码,则库将返回具有以下键的对象。

  • binaryData- Uint8ClampedArray- QR码的原始字节。
  • data - QR码数据的字符串版本。
  • location - 具有描述QR码关键点的键的对象。每个键都是表单的一个点{x: number, y: number}。有以下位置的。
  • 角落 - topRightCorner/ topLeftCorner/ bottomRightCorner/ bottomLeftCorner;
  • Finder模式 - topRightFinderPattern/ topLeftFinderPattern/bottomLeftFinderPattern
  • 也可以为BottomRightAlignmentPattern指定一个点,前提是存在一个点并且可以定位该点。
浏览 10
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报