src/modules/AddQR/QR.js
const pixelSetter = require('../../util/pixelSetter.js'),
getPixels = require('get-pixels'),
QRCode = require('qrcode');
module.exports = exports = function (options, pixels, oldPixels, cb) {
QRCode.toDataURL(options.qrCodeString, {width: options.size, scale: 1}, function (error, url) {
getPixels(url, function (err, qrPixels) {
if (err) {
console.log('get-pixels error: ', err);
}
const width = oldPixels.shape[0],
height = oldPixels.shape[1];
const xe = Math.min(options.startingX, width - options.size), // Starting pixel coordinates
ye = Math.min(options.startingY, height - options.size);
for (let x = xe; x < Math.min(xe + options.size, width); x++) {
for (let y = ye; y < Math.min(ye + options.size, height); y++) {
pixelSetter(
x,
y,
[
qrPixels.get(x - xe, y - ye, 0),
qrPixels.get(x - xe, y - ye, 1),
qrPixels.get(x - xe, y - ye, 2),
qrPixels.get(x - xe, y - ye, 3)
],
pixels
);
}
}
if(cb) cb();
});
});
};