1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- var fs = require('fs')
- var PNG = require('pngjs').PNG
- var Utils = require('./utils')
- exports.render = function render (qrData, options) {
- var opts = Utils.getOptions(options)
- var pngOpts = opts.rendererOpts
- var size = Utils.getImageWidth(qrData.modules.size, opts)
- pngOpts.width = size
- pngOpts.height = size
- var pngImage = new PNG(pngOpts)
- Utils.qrToImageData(pngImage.data, qrData, opts)
- return pngImage
- }
- exports.renderToDataURL = function renderToDataURL (qrData, options, cb) {
- if (typeof cb === 'undefined') {
- cb = options
- options = undefined
- }
- exports.renderToBuffer(qrData, options, function (err, output) {
- if (err) cb(err)
- var url = 'data:image/png;base64,'
- url += output.toString('base64')
- cb(null, url)
- })
- }
- exports.renderToBuffer = function renderToBuffer (qrData, options, cb) {
- if (typeof cb === 'undefined') {
- cb = options
- options = undefined
- }
- var png = exports.render(qrData, options)
- var buffer = []
- png.on('error', cb)
- png.on('data', function (data) {
- buffer.push(data)
- })
- png.on('end', function () {
- cb(null, Buffer.concat(buffer))
- })
- png.pack()
- }
- exports.renderToFile = function renderToFile (path, qrData, options, cb) {
- if (typeof cb === 'undefined') {
- cb = options
- options = undefined
- }
- var stream = fs.createWriteStream(path)
- stream.on('error', cb)
- stream.on('close', cb)
- exports.renderToFileStream(stream, qrData, options)
- }
- exports.renderToFileStream = function renderToFileStream (stream, qrData, options) {
- var png = exports.render(qrData, options)
- png.pack().pipe(stream)
- }
|