使用uint16array数据显示图像

时间:2018-10-20 09:06:38

标签: javascript canvas dicom xtk uint16

我正在使用XTK库进行DICOM项目。现在,我需要根据输入的DICOM文件创建缩略图列表(输出的图像可以是PNG或JPG)。

在呈现过程中,XTK在每个DICOM文件的Uint16Array中提供像素数据数组。但是我不知道将那些像素数据转换为画布。

unnecessary screenshot of what I am looking at

我搜索了一些相关的文章或问题,但没有发现任何可能。

1 个答案:

答案 0 :(得分:1)

现在ImageData has become a constructor,您可以轻松地将其置于二维环境中。

期望作为参数的是UInt8ClampedArray,宽度和高度。

因此,从表示rgba像素数据的Uint16Array中,您只需要做

var data = your_uint16array;
var u8 = new Uint8ClampedArray(data.buffer);
var img = new ImageData(u8, width, height);
ctx.putImageData(img, 0,0);

但是根据您的屏幕截图,您实际上拥有的是一个Uint16Array数组,因此您可能必须首先将所有这些Uint16Array合并为一个。

还要注意,Uint16Array是关于rgba像素数据的怪异视图,Uint32Array是更常规的视图(#ffff与#ffffffff)。