我正在使用Northwind.sdf数据库,并试图通过以下代码从Employees表中保存一名员工的照片:我得到字节[]。行是DataTable中的DataRow。
byte[] b = (byte[])row["Photo"];
MemoryStream str = new MemoryStream(b);
Image im = Image.FromStream(str);
im.Save("Fuller.png");
尝试将流转换为图像时,我得到的参数不是有效的异常。
根据这些文章: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);