Estoy intentando convertir un byte[]
en Bitmap
en C#. Lo que sigue es el código:El parámetro no es un error válido al crear una imagen desde el byte [] en C#
MemoryStream ms = new MemoryStream(b);
Bitmap bmp = new Bitmap(ms);
Se muestra el error al crear el Parameter is not valid
Bitmap
.
byte[] b
viene de una corriente de red.
Pero cuando escribo este byte [] en un archivo, y abro este archivo en cualquier visor de imágenes simplemente funciona perfectamente. A continuación se muestra el código para escribir el byte [] en el archivo:
var fs = new BinaryWriter(new FileStream("tmp.bmp", FileMode.Create, FileAccess.Write));
fs.Write(b);
fs.Close();
¿Qué me falta aquí?
EDITAR
Aquí está mi código completo que estaba causando un problema
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();
estoy utilizando este código en evento y no hay nada extra. Solo intento mostrar una imagen que se transmite por la red. El servidor está escrito en Java que está transmitiendo esta imagen.
Espero que aclare las dudas.
Gracias
¿Ha intentado utilizar Image.FromStream en su lugar? No puedo pensar en por qué podría funcionar, pero vale la pena intentarlo ... –
Probé Image.FromStream pero eso tampoco funcionó. –
@Jon. Es demasiado tarde. ¡Jon, Darin te tiene esta semana! –