Socket
Socket
Sign inDemoInstall

qr-js

Package Overview
Dependencies
14
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    qr-js

Library for QR code generation using canvas


Version published
Weekly downloads
7
Maintainers
1
Created
Weekly downloads
 

Changelog

Source

Version 1.1.4, 2015.11.11

  • Fix padding issues #2
  • Make the QR code center-aligned #35
  • Update node-canvas dependency version to support Node.js v4 and above #38

Readme

Source
                __
   __   _ __   /\_\    ____
 /'__`\/\`'__\ \/\ \  /',__\
/\ \L\ \ \ \/__ \ \ \/\__, `\
\ \___, \ \_\\_\_\ \ \/\____/
 \/___/\ \/_//_/\ \_\ \/___/
      \ \_\    \ \____/
       \/_/     \/___/

qr.js is a pure JavaScript library for QR code generation using canvas.

Install

Install using the package manager for your desired environment(s):

# for node.js:
$ npm install qr-js
# OR; for the browser:
$ bower install qr-js

Examples

In the browser:

<html>
  <body>
    <canvas id="qr-code"></canvas>
    <script src="/path/to/qr.min.js"></script>
    <script>
      qr.canvas({
        canvas: document.getElementById('qr-code'),
        value: 'http://neocotic.com/qr.js'
      });
    </script>
  </body>
</html>

In node.js:

var qr = require('qr-js');

qr.saveSync('http://neocotic.com/qr.js', 'qrcode.png');

API

Standard Data

The following configuration data options are recognised by all of the core API methods (all of which are optional):

PropertyDescriptionDefault
backgroundBackground colour to be used#fff
canvas<canvas> element in which the QR code should be renderedCreates a new element
foregroundForeground colour to be used#000
levelECC (error correction capacity) level to be appliedL
sizeModule size of the generated QR code4
valueValue to be encoded in the generated QR code""

canvas([data|value])

Renders a QR code in an HTML5 <canvas> element for a given value.

// Render the QR code on a newly created canvas element
var canvas = qr.canvas('http://neocotic.com/qr.js');
// Re-render the QR code on an existing element
qr.canvas({
  canvas: canvas,
  value: 'https://github.com/neocotic/qr.js'
});

image([data|value])

Renders a QR code in an HTML <img> element for a given value.

// Render the QR code on a newly created img element
var img = qr.image('http://neocotic.com/qr.js');
// Re-render the QR code on an existing element
qr.image({
  image: img,
  value: 'https://github.com/neocotic/qr.js'
});
Additional Data

As well as the Standard Data, this method also accepts the following additional data options:

PropertyDescriptionDefault
image<img> element in which the QR code should be renderedCreates a new element
mimeMIME type to process the QR code imageimage/png

save([data|value][, path], callback)

Saves a QR code, which has been rendered for a given value, to the user's file system.

// Render a QR code to a PNG file
qr.save('http://neocotic.com/qr.js', 'qr.png', function(err) {
  if (err) throw err;

  // ...
});
// Render a QR code to a JPEG file
qr.save({
  mime: 'image/jpeg',
  path: 'qr.jpg',
  value: 'https://github.com/neocotic/qr.js'
}, function(err) {
  if (err) throw err;

  // ...
});

Note: Currently, in the browser, this just does it's best to force a download prompt. We will try to improve on this in the future.

Additional Data

As well as the Standard Data, this method also accepts the following additional data options:

PropertyDescriptionDefault
mimeMIME type to process the QR code imageimage/png
pathPath to which the QR code should be saved
Ignored in browsers
Required if not specified as an argument

saveSync([data|value][, path])

Synchronous save(3).

toDataURL([data|value])

Returns a data URL for rendered QR code. This is a convenient shorthand for dealing with the native HTMLCanvasElement.prototype.toDataURL function.

console.log(qr.toDataURL('http://neocotic.com/qr.js')); // "data:image/png;base64,iVBORw0KGgoAAAA..."
console.log(qr.toDataURL({
  mime: 'image/jpeg',
  value: 'https://github.com/neocotic/qr.js'
})); // "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
Additional Data

As well as the Standard Data, this method also accepts the following additional data options:

PropertyDescriptionDefault
mimeMIME type to process the QR code imageimage/png

Miscellaneous

noConflict()

Returns qr in a no-conflict state, reallocating the qr global variable name to its previous owner, where possible.

This is really just intended for use within a browser.

<script src="/path/to/conflict-lib.js"></script>
<script src="/path/to/qr.min.js"></script>
<script>
  var qrNC = qr.noConflict();
  // Conflicting lib works again and use qrNC for this library onwards...
</script>
VERSION

The current version of qr.

console.log(qr.VERSION); // "1.1.4"

Canvas Support

For browser users; their browser must support the HTML5 canvas element or the API will throw an error immediately.

For node.js users; qr.js heavily depends on node-canvas to support the HTML5 canvas element in the node.js environment. Unfortunately, this library is dependant on Cairo, which is not managed by npm. Before you are able to install qr.js (and it's dependencies), you must have Cairo installed. Please see their wiki on steps on how to do this on various platforms:

https://github.com/LearnBoost/node-canvas/wiki/_pages

Bugs

If you have any problems with this library or would like to see the changes currently in development you can do so here;

https://github.com/neocotic/qr.js/issues

Questions?

Take a look at docs/qr.html to get a better understanding of what the code is doing.

If that doesn't help, feel free to follow me on Twitter, @neocotic.

However, if you want more information or examples of using this library please visit the project's homepage;

http://neocotic.com/qr.js

Keywords

FAQs

Last updated on 11 Nov 2015

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc