qreator
v9.7.0
Published
QR Code generator for browser and node.js with tree shaking and logo support
Downloads
1,535
Maintainers
Readme
qreator
QR Code generator for browser and node.js with tree shaking and logo support
Overview
- generate image in
png
,svg
andpdf
formats - numeric and alphanumeric modes
- support UTF-8
- supports color customization
- supports logos
- supports border-radius
- tree shaking support
- browser / node.js
Installing
npm install qreator
# or
yarn add qreator
Usage
Example:
import { getSVG } from "qreator/lib/svg";
import { getPNG } from "qreator/lib/png"; // imports canvas implementation in browser and sharp module in node.js
import { getPDF } from "qreator/lib/pdf"; // this import is large, consider async import
const svgString = await getSVG("I love QR", {
logo: fs.openFileSync("my-logo.svg"),
color: "#000000",
bgColor: "#FFFFFF",
});
const pngBuffer = await getPNG("I love QR", {
logo: fs.openFileSync("my-logo.svg"),
color: "rgb(0, 0, 0)",
bgColor: "rgb(255, 255, 255)",
});
Syntax
getPNG(text, [options])
: Readable stream with image data.getSVG(text, [options])
: Readable stream with image data.getPDF(text, [options])
: Readable stream with image data.
Options
text
: text to encodeoptions
: additional image options object
Additional Options
| Name | Description | Type | Possible Values | Default |
| :------------: | :------------------------------------------------: | :---------: | :-------------------: | :--------------------------------------: |
| ec_level
| error correction level | string | L
, M
, Q
, H
| M
|
| type
| image type | string | png
, svg
, pdf
| png
|
| size
| png and svg onlysize of one module in pixels | number | 0
- n | 5
(png)0
(others) |
| margin
| white space around QR image in modules | number | 0
- n | 4
(png)1
(others) |
| parse_url
| EXPERIMENTALtry to optimize QR-code for URLs | boolean | true
, false
| false
|
| logo
| buffer with png/jpeg image | ArrayBuffer | - | undefined
|
| logoWidth
| height of logo in percent | number | 0
- 100
| 20
|
| logoHeight
| width of logo in percent | number | 0
- 100
| 20
|
| color
| module color in rgba or hex format | number | #000000
- #000000
| #000000
(black with 100% opacity) |
| bgColor
| background color in rgba or hex format | number | #000000
- #FFFFFF
| #FFFFFF
(white with 100% opacity) |
| borderRadius
| border-radius (in pixels) | number | 0 - size / 2
| 0
|
| noExcavate
| don't remove partially covered modules | boolean | true
, false
| false
|
Benchmarks
getPNG x 229 ops/sec ±0.45% (84 runs sampled)
getPDF x 186 ops/sec ±24.91% (86 runs sampled)
getSVG x 2,482 ops/sec ±0.18% (90 runs sampled)
getPNG with logo x 69.96 ops/sec ±0.72% (68 runs sampled)
getPDF with logo x 44.83 ops/sec ±9.52% (77 runs sampled)
getSVG with logo x 2,494 ops/sec ±0.19% (88 runs sampled)
TODO
- Use lighter versions of PDF library