jsQRJavaScript 二維碼解析庫(kù)
jsQR 是一個(gè)純 JavaScript 二維碼解析庫(kù)。該庫(kù)讀取原始圖像或者是攝像頭,并將定位,提取和解析其中的任何QR碼。Apache License 2.0協(xié)議。jsQR旨在成為一個(gè)完全獨(dú)立的掃描QR碼庫(kù)。根據(jù)設(shè)計(jì),它不包含任何特定于平臺(tái)的代碼。這使得它可以輕松掃描前端網(wǎng)絡(luò)攝像頭流,用戶上傳的圖像,或者用作后端Node.js過程的一部分。如果要使用jsQR掃描網(wǎng)絡(luò)攝像頭流,則需要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導(dǎo)出一個(gè)方法,該方法接受3個(gè)參數(shù),表示您要解碼的圖像數(shù)據(jù)。另外,可以使用選項(xiàng)對(duì)象來進(jìn)一步配置掃描行為。
const code = jsQR(imageData,width,height,options ?);
if(code){
console.log(“找到二維碼”,code);
}
參數(shù)
- imageData- Uint8ClampedArray表單中的一個(gè)RGBA像素值[r0, g0, b0, a0, r1, g1, b1, a1, ...]。因此,這個(gè)數(shù)組的長(zhǎng)度應(yīng)該是4 * width * height。此數(shù)據(jù)與ImageData接口的格式相同,并且通常 由節(jié)點(diǎn)模塊返回以讀取圖像。
- width - 要解碼的圖像的寬度。
- height - 要解碼的圖像的高度。
- options (可選) - 附加選項(xiàng)。
- inversionAttempts
- ( attemptBoth(默認(rèn)), dontInvert,onlyInvert或invertFirst)
- 應(yīng)jsQR試圖反轉(zhuǎn)圖像找到與黑色背景而不是白色背景上的黑色模塊白色模塊QR碼。此選項(xiàng)默認(rèn)attemptBoth為向后兼容性但會(huì)導(dǎo)致性能下降約50%,并且可能dontInvert在將來的版本中默認(rèn)為。
返回值
如果QR能夠被解碼,則庫(kù)將返回具有以下鍵的對(duì)象。
- binaryData- Uint8ClampedArray- QR碼的原始字節(jié)。
- data - QR碼數(shù)據(jù)的字符串版本。
- location - 具有描述QR碼關(guān)鍵點(diǎn)的鍵的對(duì)象。每個(gè)鍵都是表單的一個(gè)點(diǎn){x: number, y: number}。有以下位置的。
- 角落 - topRightCorner/ topLeftCorner/ bottomRightCorner/ bottomLeftCorner;
- Finder模式 - topRightFinderPattern/ topLeftFinderPattern/bottomLeftFinderPattern
- 也可以為BottomRightAlignmentPattern指定一個(gè)點(diǎn),前提是存在一個(gè)點(diǎn)并且可以定位該點(diǎn)。
評(píng)論
圖片
表情
