fix: use bit-appropriate array for palette lookup tables (#1698)

Co-authored-by: Sanders DeNardi <sdenardi@summusglobal.com>
This commit is contained in:
Sanders DeNardiandSanders DeNardi authored and GitHub committed 2020-05-04 10:13:04 +02:00
1 parent 256563d7ee
commit 7033886697
1 file changed
+5 -13
@@ -115,22 +115,14 @@ function _getPaletteColor(server, paletteColorLookupTableData, lutDescriptor) {
const numLutEntries = lutDescriptor[0];
const bits = lutDescriptor[2];
const readUInt16 = (byteArray, position) => {
return byteArray[position] + byteArray[position + 1] * 256;
};
const arrayBufferToPaletteColorLUT = arraybuffer => {
const byteArray = new Uint8Array(arraybuffer);
const byteArray = bits === 16 ?
new Uint16Array(arraybuffer) :
new Uint8Array(arraybuffer);
const lut = [];
if (bits === 16) {
for (let i = 0; i < numLutEntries; i++) {
lut[i] = readUInt16(byteArray, i * 2);
}
} else {
for (let i = 0; i < numLutEntries; i++) {
lut[i] = byteArray[i];
}
for (let i = 0; i < numLutEntries; i++) {
lut[i] = byteArray[i];
}
return lut;