2011-07-14 108 views
1

看起來,當頭像字節作爲OLE對象嵌入到訪問數據庫中時,它與圖像一起存儲,它們阻止我將存儲的字節寫入因爲它引發了一個異常'GDI +發生了一個通用錯誤'。C#如何從存儲在數據庫中的OLE對象中保存圖像

如何只提取存儲在訪問數據庫中的OLE對象的圖像字節,然後保存到磁盤?

photo = ((rs.Fields["photo"].Value == System.DBNull.Value) ? 
    null : (byte[])rs.Fields["photo"].Value) 

... 

if (photo != null) 
{ 
    MemoryStream stream = new MemoryStream(photo); 
    Image image = new Bitmap(stream); 
    stream.Close(); 

    image.Save(@"C:\Temp\images\test", ImageFormat.Jpeg); 
} 

回答

1
using (MemoryStream stream = new MemoryStream(photo)) 
using (Image image = Image.FromStream(stream)) 
{ 
    image.Save(@"C:\Temp\images\test.jpg", ImageFormat.Jpeg); 
} 
+0

非常感謝! Image.FromStream() –

+0

@Nicholas Murray和'using'正確處理'IDisposable'資源,例如像Stream和GDI對象。 –