pixelbutler
Version:
Low-res bitmap render engine for big screens
39 lines (38 loc) • 1.46 kB
JavaScript
;
var Bitmap = require('../core/Bitmap');
var ImageDataLoader = require('./ImageDataLoader');
var BitmapLoader = (function () {
function BitmapLoader(url, useAlpha) {
if (typeof useAlpha === "undefined") { useAlpha = false; }
this.url = url;
this.useAlpha = useAlpha;
}
BitmapLoader.prototype.load = function (callback) {
var _this = this;
new ImageDataLoader(this.url).load(function (err, image) {
if (err) {
callback(err, null);
return;
}
if (_this.useAlpha) {
callback(null, new Bitmap(image.width, image.height, true, image.data.buffer));
} else {
var bitmap = new Bitmap(image.width, image.height, false);
var data = image.data;
var width = image.width;
for (var iy = 0; iy < image.height; iy++) {
for (var ix = 0; ix < width; ix++) {
var read = (iy * width + ix) * 4;
var write = (iy * width + ix) * 3;
bitmap.data[write] = data[read];
bitmap.data[write + 1] = data[read + 1];
bitmap.data[write + 2] = data[read + 2];
}
}
callback(null, bitmap);
}
});
};
return BitmapLoader;
})();
module.exports = BitmapLoader;