User 6976447 Ответов: 1

Как я могу преобразовать 1D-байтовый массив растрового изображения в 2D-байтовый массив?


Я написал тестовую программу и загрузил в нее PNG изображение,

https://dotnetfiddle.net/XHwp7o

Формат пикселя = 32-битный цвет
Разрешение растрового изображения,
Ширина = 512 пикселей
Высота = 512 пикселей
Шаг растрового изображения = 2048 пикселей
Смещение или отступ = (ширина шага) = (2048-512) = 1336 пикселей.
Размер массива 1D байт = 1048576 байт

Каковы будут размеры, если мы преобразуем растровое изображение в 2D-массив?

Как я могу преобразовать 1D-байтовый массив растрового изображения в 2D-байтовый массив того же растрового изображения?

Что я уже пробовал:

https://dotnetfiddle.net/XHwp7o

1 Ответов

Рейтинг:
5

Midi_Mick

Во-первых, есть несколько вещей, которые следует отметить в вашем отчете об атрибутах растрового изображения:

1. шаг обычно указывается в байтах, а не в пикселях.
2. каждый пиксель составляет 4 байта (32 бита).
3. это означает, что ваше смещение или заполнение будет равно 0 (2048 байт - 512*4 байта).

Каждая строка вашего растрового изображения будет 512 * 4 = 2018 байт, и там будет 512 строк. Это означает, что это просто случай копирования каждого последовательного 2048 байта вашего 1D-байтового массива в каждую строку 2D-массива.