我正在使用 XTK 库做一个 DICOM 项目。现在我需要从输入的 DICOM 文件中创建一个缩略图列表(输出图像可以是 PNG 或 JPG)。
Uint16Array
在渲染过程中,XTK 在每个 DICOM 文件中提供一个像素数据数组。但我不知道将这些像素数据转换为画布。
我搜索了一些相关的文章或问题,但一无所获。
我正在使用 XTK 库做一个 DICOM 项目。现在我需要从输入的 DICOM 文件中创建一个缩略图列表(输出图像可以是 PNG 或 JPG)。
Uint16Array
在渲染过程中,XTK 在每个 DICOM 文件中提供一个像素数据数组。但我不知道将这些像素数据转换为画布。
我搜索了一些相关的文章或问题,但一无所获。
如今,ImageData 已成为构造函数,您可以轻松地将其放入 2d 上下文中。
它期望作为参数的是 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)。