отображать изображение с использованием данных uint16array - PullRequest
0 голосов
/ 20 октября 2018

Я делаю проект DICOM с использованием библиотеки XTK.Теперь мне нужно создать список миниатюр из входных файлов DICOM (выходные изображения могут быть в формате PNG или JPG).

В процессе рендеринга XTK предоставляет массив данных пикселей в Uint16Array каждого файла DICOM.,Но я не имею ни малейшего представления о преобразовании этих данных пикселей в холст.

unnecessary screenshot of what I am looking at

Я искал некоторые связанные статьи или вопросы, но не нашел ничего возможного.

1 Ответ

0 голосов
/ 20 октября 2018

В настоящее время ImageData стал конструктором , который вы можете легко поместить в 2d-контекст.

То, что он ожидает в качестве аргументов, - это UInt8ClampedArray, ширина и высота.

Итак, из Uint16Array, представляющего пиксельные данные rgba, вам просто нужно будет сделать

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

Но согласно вашему скриншоту, у вас есть массив Uint16Array, так что вы будетевероятно, сначала нужно объединить все эти Uint16Arrays в один.

Также обратите внимание, что Uint16Array - это странное представление данных пикселя rgba, Uint32Array - более обычный (#ffff vs #ffffffff).

...