我试图在c#中将byte[]
转换为Bitmap
。以下是代码:从c#中的字节[]创建图像时,参数无效错误#
MemoryStream ms = new MemoryStream(b);
Bitmap bmp = new Bitmap(ms);
它创建Bitmap
时显示错误Parameter is not valid
。
byte[] b
来自网络流。
但是,当我把这个byte []写到一个文件中,并且在任何图像查看器中打开这个文件都是完美的。以下是将字节[]写入文件的代码:
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();
我使用事件的代码并没有什么额外的全部代码。我只是试图显示在网络上传输的图像。服务器是使用Java编写的,它正在流式传输此映像。
希望它澄清疑惑。
感谢
您是否尝试过使用Image.FromStream代替?我想不出为什么这可能会奏效,但值得一试...... – 2011-03-12 20:19:46
试过Image.FromStream,但那也没有奏效。 – 2011-03-12 20:23:44
@Jon Jon,Darin本周就有你了! – 2011-03-12 20:24:44