UNPKG

@abasb75/dicom-pixel-decoder

Version:

a powerfull javascript dicom pixel data decoder

36 lines (35 loc) 1.4 kB
function yrbFullToRgba(pixelData, pixelModule) { var columns = pixelModule.columns, rows = pixelModule.rows, planarConfiguration = pixelModule.planarConfiguration; if (!columns || !rows) { return pixelData; } if (pixelData.length !== columns * rows * 3) { return pixelData; } var pixelCounts = rows * columns; var _pixelData = new Uint8ClampedArray(pixelCounts * 4); if (planarConfiguration === 1) { for (var i = 0; i < pixelCounts; i++) { var y = pixelData[i]; var cb = pixelData[pixelCounts + i]; var cr = pixelData[(pixelCounts * 2) + i]; _pixelData[i * 4] = y + 1.402 * (cr - 128); _pixelData[i * 4 + 1] = y - 0.34414 * (cb - 128) - 0.71414 * (cr - 128); _pixelData[i * 4 + 2] = y + 1.772 * (cb - 128); _pixelData[i * 4 + 3] = 255; } } else { for (var i = 0; i < pixelCounts; i++) { var y = pixelData[i * 3]; var cb = pixelData[i * 3 + 1]; var cr = pixelData[i * 3 + 2]; _pixelData[i * 4] = y + 1.402 * (cr - 128); _pixelData[i * 4 + 1] = y - 0.34414 * (cb - 128) - 0.71414 * (cr - 128); _pixelData[i * 4 + 2] = y + 1.772 * (cb - 128); _pixelData[i * 4 + 3] = 255; } } return new Uint8Array(_pixelData); } export default yrbFullToRgba;