C# 如何从存储在数据库中的 OLE 对象中保存图像
Posted
技术标签:
【中文标题】C# 如何从存储在数据库中的 OLE 对象中保存图像【英文标题】:C# How to save image from an OLE Object stored in a Database 【发布时间】:2011-07-14 15:24:37 【问题描述】:当它作为 OLE 对象嵌入到访问数据库中时,标题字节似乎与图像一起存储,并且它们阻止我将存储的字节写入磁盘,因为它引发异常“GDI+ 中发生一般错误” .'
如何从存储在 access 数据库中的 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);
【讨论】:
@Nicholas Murray 和using
正确处理 IDisposable
资源,例如流和 GDI 对象(例如图像)。以上是关于C# 如何从存储在数据库中的 OLE 对象中保存图像的主要内容,如果未能解决你的问题,请参考以下文章
在 Visual Studio C# 中从 MS Access 数据库中获取 OLE(位图)对象,我的代码有啥问题?