mirror of
https://github.com/publiclab/image-sequencer.git
synced 2025-12-11 19:00:00 +01:00
* Adds Add QR module * Grunt build changes * Rremoved copyPixels function and added test for QR module * Resolved test fail issues * Adds look same test * Change default to get from info.json
49 lines
1.9 KiB
JavaScript
49 lines
1.9 KiB
JavaScript
module.exports = exports = function (options, pixels, oldPixels, callback) {
|
|
var QRCode = require('qrcode')
|
|
QRCode.toDataURL(options.qrCodeString, function (err, url) {
|
|
var getPixels = require("get-pixels");
|
|
getPixels(url, function (err, qrPixels) {
|
|
if (err) {
|
|
console.log("Bad image path", image);
|
|
}
|
|
|
|
var imagejs = require('imagejs');
|
|
var bitmap = new imagejs.Bitmap({ width: qrPixels.shape[0], height: qrPixels.shape[1] });
|
|
bitmap._data.data = qrPixels.data;
|
|
var resized = bitmap.resize({
|
|
width: options.size, height: options.size,
|
|
algorithm: "bicubicInterpolation"
|
|
});
|
|
|
|
qrPixels.data = resized._data.data;
|
|
qrPixels.shape = [options.size, options.size, 4];
|
|
qrPixels.stride[1] = 4 * options.size;
|
|
|
|
var width = oldPixels.shape[0],
|
|
height = oldPixels.shape[1];
|
|
var xe = width - options.size,
|
|
ye = height - options.size;
|
|
for (var m = 0; m < width; m++) {
|
|
for (var n = 0; n < height; n++) {
|
|
if (m >= xe && n >= ye) {
|
|
pixels.set(m, n, 0, qrPixels.get(m - xe, n - ye, 0))
|
|
pixels.set(m, n, 1, qrPixels.get(m - xe, n - ye, 1))
|
|
pixels.set(m, n, 2, qrPixels.get(m - xe, n - ye, 2))
|
|
pixels.set(m, n, 3, qrPixels.get(m - xe, n - ye, 3))
|
|
}
|
|
|
|
else {
|
|
pixels.set(m, n, 0, oldPixels.get(m, n, 0))
|
|
pixels.set(m, n, 1, oldPixels.get(m, n, 1))
|
|
pixels.set(m, n, 2, oldPixels.get(m, n, 2))
|
|
pixels.set(m, n, 3, oldPixels.get(m, n, 3))
|
|
}
|
|
|
|
}
|
|
}
|
|
callback();
|
|
|
|
})
|
|
})
|
|
}
|