从MS Access OLE Object列创建映像文件(使用C#或VB.NET)

时间:2009-05-21 13:24:54

标签: c# vb.net object ole

OLE对象列包含图像,但图像类型(jpg / gif / tiff)未知。需要从DB中提取这些图像并将其保存到磁盘。该应用程序主要使用VB.NET,但也欢迎使用C#示例。

感谢 拉胡

2 个答案:

答案 0 :(得分:3)

尝试使用System.Drawing.Image.FromStream加载图片。您可以使用System.IO.MemoryStream foo = new System.IO.MemoryStream(MyByteArray);

从字节数组中创建流

加载图片后,您可以使用想要保存的任何GDI内容(例如ImageInstance.Save(FileName);

答案 1 :(得分:3)

创建一个足以容纳OLE对象的字节数组:

Dim bArr(Len(<OLE Object Field>)) as Byte

读入OLE Object列的第一行并将其放在Byte数组中。

对于GIF文件,字节0到2将具有ASCII值“GIF”。 对于JPEG文件,字节6到9通常具有值“JFIF”。 对于PNG文件,字节1到3将具有ASCII值“PNG”。

由于存在许多不同的TIFF标准,因此TIFF更加困难。

确定文件类型后,可以使用Brian的方法保存文件