mirror of
https://github.com/cnwhy/QRCode-decode.git
synced 2026-08-12 20:31:40 +08:00
v0.0.1
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
# qrcode-decode
|
||||
时要的二维码识别代码整理自 [jsqrcode](https://github.com/LazarSoft/jsqrcode);
|
||||
解密/识别 QRCode码
|
||||
|
||||
说明: 主要的二维码识别代码整理自 [jsqrcode](https://github.com/LazarSoft/jsqrcode);
|
||||
|
||||
**修改点:**
|
||||
1. 模块化
|
||||
2. 剥离识别函数,改成适合服务端使用,但入参数还是保留为实现[ImageData](https://developer.mozilla.org/zh-CN/docs/Web/API/ImageData)接口的对像
|
||||
2. 剥离识别函数,改成适合服务端使用,但入参数还是保留为[ImageData](https://developer.mozilla.org/zh-CN/docs/Web/API/ImageData)
|
||||
|
||||
**关于 `ImageData`**
|
||||
> `Canvas` 中可以用 `ctx.getImageData` 方法得到;
|
||||
@@ -13,6 +15,23 @@
|
||||
- `server.js` 服务端项目 提供两个API `decodeByPath`, `decodeByBuffer`
|
||||
> 服务端当前支持 `bmp` , `jpg` , `png` , `gif` 格式;
|
||||
|
||||
## install
|
||||
```
|
||||
npm i qrcode-decode
|
||||
```
|
||||
|
||||
## import
|
||||
```js
|
||||
var qrDecode = require('qrcode-decode');
|
||||
//web
|
||||
var qr_web = require('qrcode-decode/browser')
|
||||
//node
|
||||
var qr_node = require('qrcode-decode/server')
|
||||
|
||||
var text = qrDecode(dataImage);
|
||||
```
|
||||
> 浏览器直接引用请使用 `./dist` 目录下的文件
|
||||
|
||||
## demo
|
||||
### web
|
||||
> web端最终是利用`Canvas`获取`ImageData`, 注意兼容及跨域问题
|
||||
@@ -33,7 +52,7 @@ qrcodeDecode.decodeByDom(img, function (err, txt) {
|
||||
```
|
||||
|
||||
### nodejs
|
||||
> 注意: 服务器端API是以 `promise` 返回结果,你注意你的`node`版本;
|
||||
> 注意: 服务器端API是以 `promise` 返回结果, 你注意你的`node`版本;
|
||||
```js
|
||||
//解析文件
|
||||
var qrcodeDecode = require('qrcode-decode/server');
|
||||
|
||||
+5
-7
@@ -1,5 +1,5 @@
|
||||
|
||||
var decode = require('./src/QRCodeDecode');
|
||||
var qrDecode = require('./src/QRCodeDecode');
|
||||
var decodeByDom = function (dom) {
|
||||
var canvas = document.createElement("canvas")
|
||||
var ctx = canvas.getContext('2d')
|
||||
@@ -7,7 +7,7 @@ var decodeByDom = function (dom) {
|
||||
canvas.height = dom.height;
|
||||
ctx.drawImage(dom, 0, 0, canvas.width, canvas.height);
|
||||
var data = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
||||
return decode(data)
|
||||
return qrDecode(data)
|
||||
}
|
||||
|
||||
var decodeByUrl = (src, cb) => {
|
||||
@@ -24,8 +24,6 @@ var decodeByUrl = (src, cb) => {
|
||||
img.onerror = cb;
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
decodeByImageDate: decode,
|
||||
decodeByDom: decodeByDom,
|
||||
decodeByUrl: decodeByUrl
|
||||
}
|
||||
qrDecode.decodeByDom = decodeByDom;
|
||||
qrDecode.decodeByUrl = decodeByUrl;
|
||||
module.exports = qrDecode;
|
||||
+1
-1
@@ -10,5 +10,5 @@
|
||||
<input type="file" name="file" id="file"><br>
|
||||
<div></div>
|
||||
</body>
|
||||
<script type="text/javascript" src="test.1.js"></script>
|
||||
<script type="text/javascript" src="test.js"></script>
|
||||
</html>
|
||||
Vendored
+3
-11
@@ -3029,19 +3029,11 @@
|
||||
img.onerror = cb;
|
||||
};
|
||||
|
||||
var browser = {
|
||||
decodeByImageDate: QRCodeDecode,
|
||||
decodeByDom: decodeByDom,
|
||||
decodeByUrl: decodeByUrl
|
||||
};
|
||||
var browser_1 = browser.decodeByImageDate;
|
||||
var browser_2 = browser.decodeByDom;
|
||||
var browser_3 = browser.decodeByUrl;
|
||||
QRCodeDecode.decodeByDom = decodeByDom;
|
||||
QRCodeDecode.decodeByUrl = decodeByUrl;
|
||||
var browser = QRCodeDecode;
|
||||
|
||||
exports.default = browser;
|
||||
exports.decodeByImageDate = browser_1;
|
||||
exports.decodeByDom = browser_2;
|
||||
exports.decodeByUrl = browser_3;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
|
||||
|
||||
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -3,6 +3,13 @@
|
||||
"version": "0.0.1",
|
||||
"description": "QRCode parser/decode",
|
||||
"main": "src/QRCodeDecode.js",
|
||||
"files": [
|
||||
"README.md",
|
||||
"browser.js",
|
||||
"server.js",
|
||||
"src/*",
|
||||
"dist/*"
|
||||
],
|
||||
"scripts": {
|
||||
"test": "node test/node.js",
|
||||
"demo": "parcel ./demo/index.html",
|
||||
|
||||
@@ -24,9 +24,7 @@ function decodeByBuffer(buffer, options) {
|
||||
res(imgDecode.png(buffer));
|
||||
break;
|
||||
case 'gif':
|
||||
// var t1 = Date.now();
|
||||
res(imgDecode.gif1(buffer));
|
||||
// console.log('gif: ',Date.now() - t1);
|
||||
res(imgDecode.gif(buffer));
|
||||
break;
|
||||
default:
|
||||
if (type) {
|
||||
@@ -87,8 +85,7 @@ function decodeByPath(path,options) {
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
decodeByBuffer: decodeByBuffer,
|
||||
decodeByPath: decodeByPath,
|
||||
decodeByImageData: qrDecode
|
||||
}
|
||||
qrDecode.decodeByBuffer = decodeByBuffer;
|
||||
qrDecode.decodeByPath = decodeByPath;
|
||||
|
||||
module.exports = qrDecode;
|
||||
Reference in New Issue
Block a user