Я прочитал огромное изображение (например, 1.800MP @ 16 бит на пиксель) с диска. Magick.Net
предоставляет мне 1-байтовый массив, поэтому каждый пиксель состоит из 2 элементов в массиве. Мне нужно иметь 2d массив ushort
для обработки.
Излишне говорить, что BlockCopy
и тому подобное запрещено - удвоение использования памяти не вариант.
Данные уже имеет правильный порядок в памяти, мне просто нужно как-то «привести» массив из byte[]
в ushort[,]
.
Итак, в основном, я ищу функцию, которая делает это:
ushort[,] convertByteToUshort(byte[] arr, int width, int height)
Я знаю ширину и высоту изображения (и, следовательно, двумерный массив), и я предполагаю, что мне нужно будет использовать unsafe
код и fixed
для указателей. Но я понятия не имею, как преобразовать ссылку в истинную ushort[,]
.
Любые идеи?