【发布时间】:2010-10-15 03:12:55
【问题描述】:
我正在从智能相机成像仪捕获图像并通过套接字编程从相机接收字节数组(.NET 应用程序是客户端,相机是服务器)。
问题是我在运行时遇到 System.InvalidArgument 异常。
private Image byteArrayToImage(byte[] byteArray)
{
if(byteArray != null)
{
MemoryStream ms = new MemoryStream(byteArray);
return Image.FromStream(ms, false, false);
/*last argument is supposed to turn Image data validation off*/
}
return null;
}
我在很多论坛中搜索过这个问题,并尝试了很多专家给出的建议,但没有任何帮助。
我认为字节数组本身没有任何问题,因为当我将相同的字节数组输入我的 VC++ MFC 客户端应用程序时,我得到了图像。但这在 C#.NET 中不起作用。
谁能帮帮我?
附注:
我尝试完成相同任务的其他方法是:
1.
private Image byteArrayToImage(byte[] byteArray)
{
if(byteArray != null)
{
MemoryStream ms = new MemoryStream();
ms.Write(byteArray, 0, byteArray.Length);
ms.Position = 0;
return Image.FromStream(ms, false, false);
}
return null;
}
2.
private Image byteArrayToImage(byte[] byteArray)
{
if(byteArray != null)
{
TypeConverter tc = TypeDescriptor.GetConverter(typeof(Bitmap));
Bitmap b = (Bitmap)tc.ConvertFrom(byteArray);
return b;
}
return null;
}
以上方法均无效。请帮忙。
【问题讨论】:
-
如果您只是将字节数组写入磁盘上的文件会发生什么?文件可以用 Photoshop 之类的东西打开吗?
-
你解决了吗?我有同样的问题
-
哪一行抛出异常?
标签: c# .net image exception memorystream