mirror of
https://github.com/cnwhy/QRCode-decode.git
synced 2026-08-12 20:22:34 +08:00
bugfix
This commit is contained in:
+3
-2
@@ -3,8 +3,9 @@ var qrDecode = require('./src/QRDecode');
|
||||
var decodeByDom = function (dom) {
|
||||
var canvas = document.createElement("canvas")
|
||||
var ctx = canvas.getContext('2d')
|
||||
canvas.width = dom.width;
|
||||
canvas.height = dom.height;
|
||||
var isVideo = dom.tagName == 'VIDEO'
|
||||
canvas.width = isVideo ? dom.videoWidth : dom.width;
|
||||
canvas.height = isVideo ? dom.videoHeight : dom.height;
|
||||
ctx.drawImage(dom, 0, 0, canvas.width, canvas.height);
|
||||
var data = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
||||
return qrDecode(data)
|
||||
|
||||
+85
-2
@@ -1,14 +1,97 @@
|
||||
<!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>
|
||||
<input type="file" name="file" id="file">
|
||||
<br>
|
||||
<button id="videoBut" onclick="buttonClick()">启用摄像头</button><br>
|
||||
<video id="video" width="300"></video>
|
||||
<div></div>
|
||||
|
||||
</body>
|
||||
<script type="text/javascript" src="test.js"></script>
|
||||
<script type="text/javascript" src="../dist/qr-decode.js"></script>
|
||||
<script>
|
||||
document.getElementById('file').onchange = function (event) {
|
||||
var el = event.target;
|
||||
if (!el.files.length) return;
|
||||
var file = el.files[0];
|
||||
new Promise(function (ok, no) {
|
||||
if (window.URL && window.URL.createObjectURL) {
|
||||
ok(window.URL.createObjectURL(file));
|
||||
} else if (typeof FileReader) {
|
||||
var reader = new FileReader();
|
||||
reader.onload = evt => {
|
||||
ok(evt.target.result);
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
} else {
|
||||
no('浏览器不支持');
|
||||
}
|
||||
}).then((src) => {
|
||||
qrDecode.decodeByUrl(src, function (err, txt) {
|
||||
var msg = document.createElement("div")
|
||||
if (err) {
|
||||
console.log(err);
|
||||
msg.innerHTML = "err: <br>" + err;
|
||||
} else {
|
||||
msg.innerHTML = txt;
|
||||
}
|
||||
document.body.appendChild(msg);
|
||||
})
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
var video =document.getElementById('video');
|
||||
var videoBut =document.getElementById('videoBut');
|
||||
var xc;
|
||||
videoBut.onclick = videoEnable;
|
||||
|
||||
function videoEnable() {
|
||||
var URL = window.URL || window.webkitURL;
|
||||
navigator.getUserMedia({
|
||||
video: true
|
||||
}, function (stream) {
|
||||
video.src = URL.createObjectURL(stream);// 将获取到的视频流对象转换为地址
|
||||
video.oncanplay = function(){
|
||||
videoPlay();
|
||||
video.width = video.videoWidth;
|
||||
video.height = video.videoHeight;
|
||||
}
|
||||
}, function (error) {
|
||||
alert(error.name || error);
|
||||
});
|
||||
}
|
||||
|
||||
function videoStop(){
|
||||
clearInterval(xc);
|
||||
video.pause();
|
||||
videoBut.innerText = '启动';
|
||||
videoBut.onclick = videoPlay;
|
||||
}
|
||||
function videoPlay(){
|
||||
video.play();
|
||||
videoBut.innerText = '停止';
|
||||
xc = setInterval(function(){
|
||||
try{
|
||||
var txt = qrDecode.decodeByDom(video);
|
||||
var msg = document.createElement("div")
|
||||
msg.innerHTML = "识别到二维码: " + txt;
|
||||
document.body.appendChild(msg);
|
||||
videoStop();
|
||||
}catch(err){
|
||||
console.log(err);
|
||||
}
|
||||
},300)
|
||||
videoBut.onclick = videoStop;
|
||||
}
|
||||
</script>
|
||||
|
||||
</html>
|
||||
@@ -1,32 +0,0 @@
|
||||
var qrcodeDecode = require('../browser')
|
||||
|
||||
document.getElementById('file').onchange = function (event) {
|
||||
var el = event.target;
|
||||
if (!el.files.length) return;
|
||||
var file = el.files[0];
|
||||
new Promise(function (ok, no) {
|
||||
if (window.URL && window.URL.createObjectURL) {
|
||||
ok(window.URL.createObjectURL(file));
|
||||
} else if (typeof FileReader) {
|
||||
var reader = new FileReader();
|
||||
reader.onload = evt => {
|
||||
ok(evt.target.result);
|
||||
};
|
||||
reader.readAsDataURL(file);
|
||||
} else {
|
||||
no('浏览器不支持');
|
||||
}
|
||||
}).then((src) => {
|
||||
qrcodeDecode.decodeByUrl(src, function (err, txt) {
|
||||
var msg = document.createElement("div")
|
||||
if (err) {
|
||||
console.log(err);
|
||||
msg.innerHTML = "err: <br>" + err;
|
||||
} else {
|
||||
msg.innerHTML = txt;
|
||||
}
|
||||
document.body.appendChild(msg);
|
||||
})
|
||||
|
||||
});
|
||||
}
|
||||
Vendored
-14
@@ -1,14 +0,0 @@
|
||||
<!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>
|
||||
Vendored
+8
-9
@@ -4,10 +4,10 @@
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
||||
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
||||
(factory((global.qrDecode = {})));
|
||||
}(this, (function (exports) { 'use strict';
|
||||
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
|
||||
typeof define === 'function' && define.amd ? define(factory) :
|
||||
(global.qrDecode = factory());
|
||||
}(this, (function () { 'use strict';
|
||||
|
||||
function AlignmentPattern(posX, posY, estimatedModuleSize) {
|
||||
this.x = posX;
|
||||
@@ -3007,8 +3007,9 @@
|
||||
var decodeByDom = function decodeByDom(dom) {
|
||||
var canvas = document.createElement("canvas");
|
||||
var ctx = canvas.getContext('2d');
|
||||
canvas.width = dom.width;
|
||||
canvas.height = dom.height;
|
||||
var isVideo = dom.tagName == 'VIDEO';
|
||||
canvas.width = isVideo ? dom.videoWidth : dom.width;
|
||||
canvas.height = isVideo ? dom.videoHeight : dom.height;
|
||||
ctx.drawImage(dom, 0, 0, canvas.width, canvas.height);
|
||||
var data = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
||||
return QRDecode(data);
|
||||
@@ -3034,8 +3035,6 @@
|
||||
QRDecode.decodeByUrl = decodeByUrl;
|
||||
var browser = QRDecode;
|
||||
|
||||
exports.default = browser;
|
||||
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
return browser;
|
||||
|
||||
})));
|
||||
|
||||
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
Vendored
-3040
File diff suppressed because one or more lines are too long
Vendored
-7
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
Vendored
-3302
File diff suppressed because one or more lines are too long
Vendored
-1
File diff suppressed because one or more lines are too long
@@ -0,0 +1,6 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="refresh" content="0;url=./demo/" />
|
||||
</head>
|
||||
</html>
|
||||
+1
-1
@@ -13,7 +13,7 @@
|
||||
"scripts": {
|
||||
"test": "node test/node.js",
|
||||
"demo": "parcel ./demo/index.html",
|
||||
"build": "bili browser.js --format umd,umd-min --banner --exports named"
|
||||
"build": "bili browser.js --format umd,umd-min --banner"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
|
||||
Reference in New Issue
Block a user