UNPKG

@abasb75/dicom-pixel-decoder

Version:

a powerfull javascript dicom pixel data decoder

29 lines (28 loc) 1.13 kB
function ybrFull422ToRgba(pixelData, pixelModule) { var columns = pixelModule.columns, rows = pixelModule.rows; if (!columns || !rows) { return pixelData; } var pixelCounts = rows * columns; if (pixelData.length !== 2 * pixelCounts) { return pixelData; } var _pixelData = new Uint8ClampedArray(pixelCounts * 4); var ybrIndex = 0; for (var i = 0; i < pixelCounts; i += 2) { var y1 = pixelData[ybrIndex++]; var y2 = pixelData[ybrIndex++]; var cb = pixelData[ybrIndex++]; var cr = pixelData[ybrIndex++]; _pixelData[i * 4] = y1 + 1.402 * (cr - 128); _pixelData[i * 4 + 1] = y1 - 0.34414 * (cb - 128) - 0.71414 * (cr - 128); _pixelData[i * 4 + 2] = y1 + 1.772 * (cb - 128); _pixelData[i * 4 + 3] = 255; _pixelData[i * 4 + 4] = y2 + 1.402 * (cr - 128); _pixelData[i * 4 + 5] = y2 - 0.34414 * (cb - 128) - 0.71414 * (cr - 128); _pixelData[i * 4 + 6] = y2 + 1.772 * (cb - 128); _pixelData[i * 4 + 7] = 255; } return new Uint16Array(_pixelData); } export default ybrFull422ToRgba;