GitPedia

Qr image

Yet another QR code generator

From alexeyten·Updated June 16, 2026·View on GitHub·

* No dependecies; * generate image in `png`, `svg`, `eps` and `pdf` formats; * numeric and alphanumeric modes; * support UTF-8. The project is written primarily in JavaScript, distributed under the MIT License license, first published in 2014. It has gained significant community traction with 1,065 stars and 164 forks on GitHub. Key topics include: javascript, qr, qrcode.

Latest release: v3.2.0
December 22, 2016View Changelog →

qr-image

npm version

This is yet another QR Code generator.

Overview

  • No dependecies;
  • generate image in png, svg, eps and pdf formats;
  • numeric and alphanumeric modes;
  • support UTF-8.

Releases

Installing

shell
npm install qr-image

Usage

Example:

javascript
var qr = require('qr-image'); var qr_svg = qr.image('I love QR!', { type: 'svg' }); qr_svg.pipe(require('fs').createWriteStream('i_love_qr.svg')); var svg_string = qr.imageSync('I love QR!', { type: 'svg' });

Example For generate images in client side:

javascript
var qr = require('qr-image'); router.get('/qr', function(){ var code = qr.image('http://www.google.com', { type: 'png' }); res.setHeader('Content-type', 'image/png'); //sent qr image to client side code.pipe(res); });

then in the html files:

<img src="/qr" alt="qrcode">

More examples

qr = require('qr-image')

Methods

  • qr.image(text, [ec_level | options]) — Readable stream with image data;
  • qr.imageSync(text, [ec_level | options]) — string with image data. (Buffer for png);
  • qr.svgObject(text, [ec_level | options]) — object with SVG path and size;
  • qr.matrix(text, [ec_level]) — 2D array of booleans. Y is indexed first (e.g. [y][x] NOT [x][y]), [0][0] is the top left, and true means black.

Options

  • text — text to encode;
  • ec_level — error correction level. One of L, M, Q, H. Default M.
  • options — image options object:
    • ec_level — default M.
    • type — image type. Possible values png (default), svg, pdf and eps.
    • size (png and svg only) — size of one module in pixels. Default 5 for png and undefined for svg.
    • margin — white space around QR image in modules. Default 4 for png and 1 for others.
    • customize (only png) — function to customize qr bitmap before encoding to PNG.
    • parse_url (experimental, default false) — try to optimize QR-code for URLs.

Changes

  • Use zlib.deflateSync instead of pako.
  • Fix deprecation warning for NodeJS 7.

TODO

  • Tests;
  • mixing modes;
  • Kanji (???).

Contributors

Showing top 8 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from alexeyten/qr-image via the GitHub API.Last fetched: 6/21/2026