liup a01a5aa773 | 3 tygodni temu | |
---|---|---|
.. | ||
dist | 3 tygodni temu | |
examples/browser-upload | 3 tygodni temu | |
src | 3 tygodni temu | |
test | 3 tygodni temu | |
.editorconfig | 3 tygodni temu | |
.eslintrc.js | 3 tygodni temu | |
.travis.yml | 3 tygodni temu | |
CHANGELOG.md | 3 tygodni temu | |
COPYING | 3 tygodni temu | |
README.md | 3 tygodni temu | |
package.json | 3 tygodni temu | |
rollup.config.js | 3 tygodni temu |
This was started as a port of Lazarsoft’s qrcode reader.
It is a maintained fork, so feel free to open issues or PR !
npm install qrcode-reader
var QrCode = require('qrcode-reader');
Create a new instance of QrCode:
var qr = new QrCode();
Set its callback to a custom function:
qr.callback = function(error, result) {
if(error) {
console.log(error)
return;
}
console.log(result)
}
You have to use an external imageparser
You can use npm install --save jimp
which doesn’t have any dependency (runs in pure node).
var Jimp = require("jimp");
var buffer = fs.readFileSync(__dirname + '/image.png');
Jimp.read(buffer, function(err, image) {
if (err) {
console.error(err);
// TODO handle error
}
var qr = new QrCode();
qr.callback = function(err, value) {
if (err) {
console.error(err);
// TODO handle error
}
console.log(value.result);
console.log(value);
};
qr.decode(image.bitmap);
});
You can use npm install --save image-parser
, which depends on lwip or graphicsmagick
var ImageParser = require("image-parser");
var buffer = fs.readFileSync(__dirname + '/image.png');
var img = new ImageParser(img);
img.parse(function(err) {
if (err) {
console.error(err);
// TODO handle error
}
var qr = new QrCode();
qr.callback = function(err, value) {
if (err) {
console.error(err);
// TODO handle error
return done(err);
}
console.log(value.result);
console.log(value);
};
qr.decode({width: img.width(), height: img.height()}, img._imgBuffer);
});
Since the browser contains the Image global, we can use it to open images with URL, Data URI, ...
Decode an image by its URL or Data URI:
qr.decode(url or DataURL);
Decode an image by context.getImageData: Works with web workers.
var context = canvas.getContext("2d"); var data = context.getImageData(0, 0, width, height);
qr.decode(data);
====================
If you want, you can build the script yourself.
First clone the repository, then from the directory of this repository, do:
npm install
To run the build process and generate a JavaScript file called dist/index.js
you can run from node:
npm run build
To run the tests:
npm test
The generated file dist/index.js
works in the browser.
You will have access to the global variable QrCode
if you do the following in your HTML:
```
\`\`\`See examples/browser-upload/index.html for a very basic example using a file upload.
See CHANGELOG.md
.