【发布时间】:2018-04-25 17:36:42
【问题描述】:
我正在尝试显示来自 DICOM 文件的图像数据。我已经解析了文件并将 16 位灰度图像提取到 Uint16Array 中。如果我想将它作为纹理传递给 WebGL,我认为这是一种方便的格式,但如果我想将它粘贴到画布上怎么办?
谢谢。
【问题讨论】:
-
您将使用 putImageData 完成工作。
-
感谢您的提示。现在,我创建了一个新的 Uint8ClampedArray 并运行一个循环将 Uint16Array 中的所有数据放入新的 Array 中。然后我使用 putImageData 函数将其粘贴到画布上。你知道这是否是唯一的方法,因为循环非常昂贵?
-
所以你有一个答案:你应该把它贴在下面。我会看看是否有可能的改进。我想知道在数组上采用 Uint32 视图并处理 4 x 4 字节是否可以加快速度(var view32 = new Uint32Array(imgdata.data.buffer) )。 (但这在FF中是行不通的……)而且不要忘记只创建一次imgData,然后重复使用,创建时间很长。