# qrcode-reader

> fork of lazarsoft's jsqrcode for node

Latest version **1.0.4** (published 2017-10-23) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install qrcode-reader
pnpm add qrcode-reader
yarn add qrcode-reader
bun add qrcode-reader
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.4 |
| Published | 2017-10-23 |
| First published | 2014-08-20 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 281 |
| Maintainers | edi9999 |

## Links

- npm: https://www.npmjs.com/package/qrcode-reader
- Repository: https://github.com/edi9999/jsqrcode
- Issues: https://github.com/edi9999/jsqrcode/issues
- npm.io page: https://npm.io/package/qrcode-reader

## Recent versions

- 1.0.4 (latest) — 2017-10-23
- 1.0.3 — 2017-09-27
- 1.0.2 — 2017-07-01
- 1.0.1 — 2017-07-01
- 1.0.0 — 2017-04-28
- 0.2.2 — 2016-09-14
- 0.2.1 — 2016-06-23
- 0.2.0 — 2016-06-23
- 0.1.1 — 2016-04-11
- 0.1.0 — 2016-01-14
- 0.0.7 — 2015-10-28
- 0.0.6 — 2015-10-28
- 0.0.5 — 2014-08-21
- 0.0.4 — 2014-08-20
- 0.0.3 — 2014-08-20
- … 2 more at https://npm.io/package/qrcode-reader/versions

## README

JavaScript QRCode reader for HTML5 enabled browser.
===================================================

This was started as a port of Lazarsoft’s qrcode reader.

It is a maintained fork, so feel free to open issues or PR !

[![Build Status](https://travis-ci.org/edi9999/jsqrcode.svg?branch=master&style=flat)](https://travis-ci.org/edi9999/jsqrcode)

Installation
============

```
npm install qrcode-reader
```

Usage
=====

```
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)
}
```

Passing image data in node
==========================

You have to use an external imageparser

1.	You can use `npm install --save jimp` which doesn't have any dependency (runs in pure node).

	```javascript
	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);
	});
	```

2.	You can use `npm install --save image-parser`, which depends on lwip or graphicsmagick

	```javascript
	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);
	});
	```

Passing image data in the browser
=================================

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](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_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

```

Make it work in the browser
===========================

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:

\`\`\`

<script src="dist/index.js"></script> \`\`\`

See [examples/browser-upload/index.html](examples/browser-upload/index.html) for a very basic example using a file upload.

Changelog
=========

See [`CHANGELOG.md`](CHANGELOG.md)\.

---
_Source: https://npm.io/package/qrcode-reader · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
