请教一个C#中将byte[]数组转换为Image的问题 10

我用C#显示摄像头图像,摄像头是320X240,16位色,因此每一帧大小是153600字节,接收的数据存在g[]中,程序如下byte[]g=newbyte[153600]... 我用C#显示摄像头图像,摄像头是320X240,16位色,因此每一帧大小是153600字节,接收的数据存在g[]中,程序如下
byte[] g = new byte[153600];
for (int i = 0; i != g.Length; i++)
{
g[i] = Convert.ToByte(sp.ReadByte()) ;
}

下面的程序是我将byte[]转换为Image:
public Image ByteArrayToImage(byte[] b)
{
MemoryStream ms = new MemoryStream(b);
Image img = Image.FromStream(ms);
return img;
}
可是每次接收的时候,程序都会跳出,提示 Image img = Image.FromStream(ms);这句话“参数无效”,请问各位大神应该怎么解决啊?
展开
 我来答
百度网友9308069
推荐于2018-05-04 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1878万
展开全部
Image是一个抽象类,不能直接作为实例化使用。
FromStream输入的内容必须是图片文件jpg,bmp的数据,而不是rgb数据
应该用Image的子类Bitmap,
byte[] rgb = new byte[153600];//原RGB字节数据
Bitmap img = new Bitmap(320, 240, PixelFormat.Format24bppRgb);
//锁定内存数据
BitmapData data=img.LockBits(
new Rectangle(0,0,img.Width,img.Height),
ImageLockMode.WriteOnly,
PixelFormat.Format24bppRgb);
//输入颜色数据
System.Runtime.InteropServices.Marshal.Copy(rgb, 0, data.Scan0, rgb.Length);
img.UnlockBits(data);//解锁
g.DrawImage(img);//绘制在Graphics上面
i_g_1988
2012-08-03 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:194
采纳率:100%
帮助的人:42.2万
展开全部
和我遇到的问题一样。转码问题。
public static string ToStringNow(object obj)
{
StringBuilder sb = new StringBuilder();
byte[] byte1 = (byte[])obj;
for (int i = 0; i < byte1.Length; i++)
{
char p;
p = (char)byte1[i];
sb.Append(p);
}
return sb.ToString();
}
这个是转码的方法
string path = ToStringNow(this.dataGridView1[2, i].Value);
this.dataGridView1[2, i].Value = Image.FromFile(path);
在dataGridView中第三列显示。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaojian_90
2012-08-03 · 超过12用户采纳过TA的回答
知道答主
回答量:145
采纳率:0%
帮助的人:58.3万
展开全部
MemoryStream ms = new MemoryStream(b);
Bitmap bm = new Bitmap(ms);
return bm
试一下这个呢。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友26c14b1d3
2012-08-03 · TA获得超过336个赞
知道小有建树答主
回答量:472
采纳率:0%
帮助的人:324万
展开全部
public Image ByteArrayToImage(byte[] b)
{
MemoryStream ms = new MemoryStream(b);
System.Drawing.Bitmap image = new Bitmap(ms);
return image;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式