Refactoring

This commit is contained in:
Oleg Korshul 2022-05-14 16:34:00 +03:00
parent 4e1839eaf3
commit 4ec247d6ce

View file

@ -131,35 +131,43 @@ define([
}; };
this.openBinary = function(arrayBuffer) { this.openBinary = function(arrayBuffer) {
//var t1 = performance.now();
var binaryAlpha = new Uint8Array(arrayBuffer); var binaryAlpha = new Uint8Array(arrayBuffer);
this.width = (binaryAlpha[0] << 24) | (binaryAlpha[1] << 16) | (binaryAlpha[2] << 8) | (binaryAlpha[3] << 0); this.width = (binaryAlpha[0] << 24) | (binaryAlpha[1] << 16) | (binaryAlpha[2] << 8) | (binaryAlpha[3] << 0);
this.heightOne = (binaryAlpha[4] << 24) | (binaryAlpha[5] << 16) | (binaryAlpha[6] << 8) | (binaryAlpha[7] << 0); this.heightOne = (binaryAlpha[4] << 24) | (binaryAlpha[5] << 16) | (binaryAlpha[6] << 8) | (binaryAlpha[7] << 0);
this.count = (binaryAlpha[8] << 24) | (binaryAlpha[9] << 16) | (binaryAlpha[10] << 8) | (binaryAlpha[11] << 0); this.count = (binaryAlpha[8] << 24) | (binaryAlpha[9] << 16) | (binaryAlpha[10] << 8) | (binaryAlpha[11] << 0);
this.height = this.count * this.heightOne; this.height = this.count * this.heightOne;
this.data = new Uint8ClampedArray(4 * this.width * this.height); this.data = new Uint8ClampedArray(4 * this.width * this.height);
var binaryIndex = 12; var binaryIndex = 12;
var binaryLen = binaryAlpha.length; var binaryLen = binaryAlpha.length;
var imagePixels = this.data; var imagePixels = this.data;
var alphaIndex = 3; var index = 0;
var len0 = 0; var len0 = 0;
var tmpValue = 0;
while (binaryIndex < binaryLen) { while (binaryIndex < binaryLen) {
imagePixels[alphaIndex] = binaryAlpha[binaryIndex]; tmpValue = binaryAlpha[binaryIndex++];
binaryIndex++; if (0 == tmpValue) {
alphaIndex += 4; len0 = binaryAlpha[binaryIndex++];
if (0 === binaryAlpha[binaryIndex - 1]) {
len0 = binaryAlpha[binaryIndex++] - 1;
while (len0 > 0) { while (len0 > 0) {
len0--; len0--;
imagePixels[alphaIndex] = 0; imagePixels[index] = imagePixels[index + 1] = imagePixels[index + 2] = 255;
alphaIndex += 4; imagePixels[index + 3] = 0; // this value is already 0.
index += 4;
} }
} else {
imagePixels[index] = imagePixels[index + 1] = imagePixels[index + 2] = 255 - tmpValue;
imagePixels[index + 3] = tmpValue;
index += 4;
} }
} }
//var t2 = performance.now();
//console.log(t2 - t1);
}; };
this.getImage = function(index, canvas, ctx) { this.getImage = function(index, canvas, ctx) {