UNPKG

js-dicom

Version:

this is js-dicom

32 lines (23 loc) 789 B
/* eslint no-bitwise: 0 */ function isBitSet (byte, bitPos) { return byte & (1 << bitPos); } /** * Function to deal with unpacking a binary frame */ function unpackBinaryFrame (byteArray, frameOffset, pixelsPerFrame) { // Create a new pixel array given the image size const pixelData = new Uint8Array(pixelsPerFrame); for (let i = 0; i < pixelsPerFrame; i++) { // Compute byte position const bytePos = Math.floor(i / 8); // Get the current byte const byte = byteArray[bytePos + frameOffset]; // Bit position (0-7) within byte const bitPos = (i % 8); // Check whether bit at bitpos is set pixelData[i] = isBitSet(byte, bitPos) ? 1 : 0; } return pixelData; } export default unpackBinaryFrame;