我正在使用XTK库进行DICOM项目。现在,我需要根据输入的DICOM文件创建缩略图列表(输出的图像可以是PNG或JPG)。
在呈现过程中,XTK在每个DICOM文件的Uint16Array
中提供像素数据数组。但是我不知道将那些像素数据转换为画布。
我搜索了一些相关的文章或问题,但没有发现任何可能。
答案 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)。