【问题标题】:Parameter is not valid exception while converting Stream to Image将 Stream 转换为 Image 时参数无效异常
【发布时间】:2013-06-28 00:36:51
【问题描述】:

我正在处理 Northwind.sdf 数据库,我正在尝试通过以下代码从员工表中保存员工的照片: 我得到了字节[]。 row 是来自 DataTable 的 DataRow。

byte[] b = (byte[])row["Photo"];
MemoryStream str = new MemoryStream(b);

Image im = Image.FromStream(str);
im.Save("Fuller.png");

我在尝试将流转换为图像时收到 Parameter is not valid 异常。

【问题讨论】:

  • Image.FromStream(str)....
  • 简单地用谷歌搜索,我得到了这些:google.com/search?q=Parameter+is+not+valid+exception 最可能的原因是您的字节数组不包含有效的图像数据。
  • 谢谢肯,我也用谷歌搜索了...从 Northwind 数据库中检索照片时需要进行任何解码还是我们需要做的事情

标签: c# database image stream


【解决方案1】:

根据这些文章:http://www.akadia.com/services/dotnet_load_blob.htmlhttp://www.eggheadcafe.com/articles/20050911.asp “Northwind 员工表是从 MS Access 设计的,它需要一个 78 字节的 OLE 标头”。您必须从 MemoryStream 中省略前 78 个。

MemoryStream str = new MemoryStream(); 
int offset = 78;              
str.Write(b, offset, b.Length - offset);
Image im = Image.FromStream(str);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多