2 var PNG = require('pngjs').PNG
3 var Utils = require('./utils')
5 exports.render = function render (qrData, options) {
6 var opts = Utils.getOptions(options)
7 var pngOpts = opts.rendererOpts
8 var size = Utils.getImageWidth(qrData.modules.size, opts)
13 var pngImage = new PNG(pngOpts)
14 Utils.qrToImageData(pngImage.data, qrData, opts)
19 exports.renderToDataURL = function renderToDataURL (qrData, options, cb) {
20 if (typeof cb === 'undefined') {
25 exports.renderToBuffer(qrData, options, function (err, output) {
27 var url = 'data:image/png;base64,'
28 url += output.toString('base64')
33 exports.renderToBuffer = function renderToBuffer (qrData, options, cb) {
34 if (typeof cb === 'undefined') {
39 var png = exports.render(qrData, options)
44 png.on('data', function (data) {
48 png.on('end', function () {
49 cb(null, Buffer.concat(buffer))
55 exports.renderToFile = function renderToFile (path, qrData, options, cb) {
56 if (typeof cb === 'undefined') {
61 var stream = fs.createWriteStream(path)
62 stream.on('error', cb)
63 stream.on('close', cb)
65 exports.renderToFileStream(stream, qrData, options)
68 exports.renderToFileStream = function renderToFileStream (stream, qrData, options) {
69 var png = exports.render(qrData, options)
70 png.pack().pipe(stream)