This commit is contained in:
cnwhy
2018-07-23 22:51:30 +08:00
parent dc74dd877c
commit e1d897bca3
12 changed files with 6382 additions and 15 deletions
+11 -11
View File
@@ -1,4 +1,4 @@
# qrcode-decode # qr-decode
解密/识别 QRCode码 解密/识别 QRCode码
说明: 主要的二维码识别代码整理自 [jsqrcode](https://github.com/LazarSoft/jsqrcode); 说明: 主要的二维码识别代码整理自 [jsqrcode](https://github.com/LazarSoft/jsqrcode);
@@ -17,16 +17,16 @@
## install ## install
``` ```
npm i qrcode-decode npm i qr-decode
``` ```
## import ## import
```js ```js
var qrDecode = require('qrcode-decode'); var qrDecode = require('qr-decode');
//web //web
var qr_web = require('qrcode-decode/browser') var qr_web = require('qr-decode/browser')
//node //node
var qr_node = require('qrcode-decode/server') var qr_node = require('qr-decode/server')
var text = qrDecode(dataImage); var text = qrDecode(dataImage);
``` ```
@@ -36,16 +36,16 @@ var text = qrDecode(dataImage);
### web ### web
> web端最终是利用`Canvas`获取`ImageData`, 注意兼容及跨域问题 > web端最终是利用`Canvas`获取`ImageData`, 注意兼容及跨域问题
```js ```js
var qrcodeDecode = require('qrcode-decode/browser'); var qrDecode = require('qr-decode/browser');
// 传入二维码图片URL/dataURL // 传入二维码图片URL/dataURL
qrcodeDecode.decodeByUrl(src, function (err, txt) { qrDecode.decodeByUrl(src, function (err, txt) {
if (err) { return console.log(err);} if (err) { return console.log(err);}
alert(txt); alert(txt);
}) })
// 传入DOM可以画到canvas的dom都可以 `img` `canvas` 'video' 等 // 传入DOM可以画到canvas的dom都可以 `img` `canvas` 'video' 等
var img = document.getElementById('img1'); var img = document.getElementById('img1');
qrcodeDecode.decodeByDom(img, function (err, txt) { qrDecode.decodeByDom(img, function (err, txt) {
if (err) { return console.log(err);} if (err) { return console.log(err);}
alert(txt); alert(txt);
}) })
@@ -55,15 +55,15 @@ qrcodeDecode.decodeByDom(img, function (err, txt) {
> 注意: 服务器端API是以 `promise` 返回结果, 你注意你的`node`版本; > 注意: 服务器端API是以 `promise` 返回结果, 你注意你的`node`版本;
```js ```js
//解析文件 //解析文件
var qrcodeDecode = require('qrcode-decode/server'); var qrDecode = require('qr-decode/server');
qrcodeDecode.decodeByPath('xx/code.jpg').then(function(val){ qrDecode.decodeByPath('xx/code.jpg').then(function(val){
console.log(val); console.log(val);
},console.error.bind(console)) },console.error.bind(console))
//解析Buffer //解析Buffer
fs.readFile(path, function (err, buffer) { fs.readFile(path, function (err, buffer) {
if (err) { return rej(err) } if (err) { return rej(err) }
resqrcodeDecode.decodeByBuffer(buffer); qrDecode.decodeByBuffer(buffer);
}) })
``` ```
+1 -1
View File
@@ -1,5 +1,5 @@
var qrDecode = require('./src/QRCodeDecode'); var qrDecode = require('./src/QRDecode');
var decodeByDom = function (dom) { var decodeByDom = function (dom) {
var canvas = document.createElement("canvas") var canvas = document.createElement("canvas")
var ctx = canvas.getContext('2d') var ctx = canvas.getContext('2d')
+14
View File
@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>qrcode-decode</title>
</head>
<body>
<input type="file" name="file" id="file"><br>
<div></div>
</body>
<script type="text/javascript" src="/test.b0eca09c.js"></script>
</html>
+3041
View File
File diff suppressed because one or more lines are too long
+7
View File
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
+3302
View File
File diff suppressed because one or more lines are too long
+1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -1,5 +1,5 @@
{ {
"name": "qrcode-decode", "name": "qr-decode",
"version": "0.0.1", "version": "0.0.1",
"description": "QRCode parser/decode", "description": "QRCode parser/decode",
"main": "src/QRCodeDecode.js", "main": "src/QRCodeDecode.js",
+1 -1
View File
@@ -1,7 +1,7 @@
var fs = require('fs') var fs = require('fs')
var imgType = require('image-type') var imgType = require('image-type')
var imgDecode = require('./src/imageDecode') var imgDecode = require('./src/imageDecode')
var qrDecode = require('./src/QRCodeDecode') var qrDecode = require('./src/QRDecode')
/** /**
* 通过Buffer识别二维码 * 通过Buffer识别二维码
+1
View File
@@ -139,6 +139,7 @@ var process = function (data,base) {
// 解析QR矩阵 // 解析QR矩阵
var reader = Decoder.decode(qRCodeMatrix.bits); var reader = Decoder.decode(qRCodeMatrix.bits);
// console.log(reader);
var data = reader.DataByte; var data = reader.DataByte;
var str = ""; var str = "";
for (var i = 0; i < data.length; i++) { for (var i = 0; i < data.length; i++) {
+1 -1
View File
@@ -18,7 +18,7 @@ async function test_time(path, mark) {
} }
console.log(mark + ' 100次 : ', Date.now() - t,' ms'); console.log(mark + ' 100次 : ', Date.now() - t,' ms');
} }
console.table({a:1,b:2})
// var test = test_time; // var test = test_time;
var test = function (path, mark) { var test = function (path, mark) {