UNPKG

js-dicom

Version:

this is js-dicom

36 lines (34 loc) 2 kB
/** * This module contains a function to convert stored pixel values to display pixel values using a LUT */ function storedColorPixelDataToCanvasImageData(image, lut, canvasImageDataData) { var minPixelValue = image.minPixelValue; var canvasImageDataIndex = 0; var storedPixelDataIndex = 0; var numPixels = image.width * image.height * 4; var storedPixelData = image.getPixelData(); var localLut = lut; var localCanvasImageDataData = canvasImageDataData; // NOTE: As of Nov 2014, most javascript engines have lower performance when indexing negative indexes. // We have a special code path for this case that improves performance. Thanks to @jpambrun for this enhancement if(minPixelValue < 0){ while(storedPixelDataIndex < numPixels) { localCanvasImageDataData[canvasImageDataIndex++] = localLut[storedPixelData[storedPixelDataIndex++] + (-minPixelValue)]; // red localCanvasImageDataData[canvasImageDataIndex++] = localLut[storedPixelData[storedPixelDataIndex++] + (-minPixelValue)]; // green localCanvasImageDataData[canvasImageDataIndex] = localLut[storedPixelData[storedPixelDataIndex] + (-minPixelValue)]; // blue storedPixelDataIndex+=2; canvasImageDataIndex+=2; } }else{ while(storedPixelDataIndex < numPixels) { localCanvasImageDataData[canvasImageDataIndex++] = localLut[storedPixelData[storedPixelDataIndex++]]; // red localCanvasImageDataData[canvasImageDataIndex++] = localLut[storedPixelData[storedPixelDataIndex++]]; // green localCanvasImageDataData[canvasImageDataIndex] = localLut[storedPixelData[storedPixelDataIndex]]; // blue storedPixelDataIndex+=2; canvasImageDataIndex+=2; } } } // Module exports export default storedColorPixelDataToCanvasImageData;