我正在使用Northwind.sdf数据库,我试图通过以下代码从Employees表中保存Employee的照片: 我得到了字节[]。 row是DataTable的DataRow。
byte[] b = (byte[])row["Photo"];
MemoryStream str = new MemoryStream(b);
Image im = Image.FromStream(str);
im.Save("Fuller.png");
尝试将流转换为图像时,我收到参数无效异常。
答案 0 :(得分:2)
根据这些文章:http://www.akadia.com/services/dotnet_load_blob.html和http://www.eggheadcafe.com/articles/20050911.asp “Northwind Employees表是从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);