Вы можете использовать метод System.Buffer.BlockCopy для копирования массива двумерного изображения в плоский массив. Затем используйте класс MemoryStream для создания изображения:
int[,] imgArray = new int[320, 200];
int[] flattenedArray = new int[320 * 200];
Buffer.BlockCopy(imgArray, 0, flattenedArray, 0, 320 * 200 * sizeof(int));
MemoryStream ms = new MemoryStream(flattenedArray);
НАЧАТЬ РЕДАКТИРОВАТЬ
Извините, я недостаточно внимательно прочитал ваш вопрос. Андерс прав. Вы не можете создать
точечный рисунок из потока, который не содержит такую информацию, как ширина, высота. Вы могли бы
преобразуйте массив int в IntPtr, используя класс GCHandle. Затем создается экземпляр растрового класса
с IntPtr:
GCHandle handle = GCHandle.Alloc(array, GCHandleType.Pinned);
IntPtr pointer = handle.AddrOfPinnedObject();
var myBmp = new Bitmap(width, height, stride, PixelFormat.Format32bppRgb, pointer);
Я пропустил обработку ошибок.
КОНЕЦ РЕДАКТИРОВАНИЯ
Надеюсь, это поможет.