UNPKG

@abasb75/jpeg-lossless-decoder

Version:
42 lines (41 loc) 1.2 kB
// https://stackoverflow.com/a/12588826 export var createArray = function () { var dimensions = []; for (var _i = 0; _i < arguments.length; _i++) { dimensions[_i] = arguments[_i]; } if (dimensions.length > 1) { var dim = dimensions[0]; var rest = dimensions.slice(1); var newArray = []; for (var i = 0; i < dim; i++) { newArray[i] = createArray.apply(void 0, rest); } return newArray; } else { return Array(dimensions[0]).fill(undefined); } }; // http://stackoverflow.com/questions/18638900/javascript-crc32 export var makeCRCTable = function () { var c; var crcTable = []; for (var n = 0; n < 256; n++) { c = n; for (var k = 0; k < 8; k++) { c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1; } crcTable[n] = c; } return crcTable; }; export var crcTable = makeCRCTable(); export var crc32 = function (buffer) { var uint8view = new Uint8Array(buffer); var crc = 0 ^ -1; for (var i = 0; i < uint8view.length; i++) { crc = (crc >>> 8) ^ crcTable[(crc ^ uint8view[i]) & 0xff]; } return (crc ^ -1) >>> 0; };