@Abel: Когда он фактически создает MemoryStream из байтового массива, он по умолчанию располагается в начале. Тем не менее, я полагаю, что код, размещенный в вопросе, не был точным представлением реального кода.

аюсь преобразоватьbyte[] вBitmap в с #. Ниже приведен код:

MemoryStream ms = new MemoryStream(b);
Bitmap bmp = new Bitmap(ms);

Показывает ошибкуParameter is not valid при созданииBitmap.

byte[] b исходит из сетевого потока.

Но когда я записываю этот байт [] в файл и открываю этот файл в любой программе просмотра изображений, он просто отлично работает. Ниже приведен код для записи байта [] в файл:

 var fs = new BinaryWriter(new FileStream("tmp.bmp", FileMode.Create, FileAccess.Write));
 fs.Write(b);
 fs.Close();

Что мне здесь не хватает?

РЕДАКТИРОВАТЬ

Вот мой полный код, который вызывал проблему

 Socket s = listener.AcceptSocket();
 byte[] b = new byte[imgLen];
 s.Receive(b);
 MemoryStream ms = new MemoryStream(b);
 // now here I am using ms.Seek(0, SeekOrigin.Begin); that fixed my problem.
 Bitmap bmp = new Bitmap(ms);
 pictureBox1.Image = bmp;
 s.Close();

Я использую этот код наForm_Load событие и ничего лишнего. Я просто пытаюсь отобразить изображение, которое транслируется в сети. Сервер написан на Java, который передает это изображение.

Надеюсь, это проясняет сомнения.

Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос