Как изменить форму массива в C #

У меня есть 3D-массив байтов в C #, который я прочитал из растрового изображения:

byte[w, h, 3]

Каков самый простой и более эффективный способ преобразования этого массива в 2D (линейная) форма?

byte[w*h, 3]

Другими словами, я хочу сохранить количество каналов (функций), но в линейной форме (а не в форме квадрата)

Позвольте мне попытаться проиллюстрировать ввод и желаемый результат:

ввод:

|(r1,g1,b1)    (r2,g2,b2)    (r3,g3,b3)|
|(r4,g4,b4)    (r5,g5,b5)    (r6,g6,b6)|
|(r7,g7,b7)    (r8,g8,b8)    (r9,g9,b9)|

обратите внимание, что arr [0, 0, 0] = r1, arr [0, 0, 1] = g1, arr [0, 0, 2] = b1 и т. д.

и вывод:

|(r1,g1,b1)    (r2,g2,b2)    (r3,g3,b3)    (r4,g4,b4)    (r5,g5,b5)    (r6,g6,b6) ...|
11
задан Mo Valipour 29 June 2011 в 15:40
поделиться