2

我正在处理 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 异常。

4

1 回答 1

2

根据这些文章:http ://www.akadia.com/services/dotnet_load_blob.html和http://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);
于 2013-06-28T01:09:11.443 回答