ACCESS中的字段为OLE对象(为BMP),怎样读出它到image框?(30分)

  • 主题发起人 主题发起人 youngjian
  • 开始时间 开始时间
在VB下可以用OLE绑定控件,
但在Delphi下, 只能按BlobField类型读出该OLE字段到一个MemoryStream,
然后判断BMP文件的起点(因为OLE字段中还包含了其它OLE信息, 如文件名等):
BMP文件以"BM"开始, 要注意的是OLE字段中不只包含一个"BM", 如文件扩
展名"BMP"中也包含"BM", 这个规律可以摸索出来; 得到起点后紧接着就好象
是BMP文件的大小; 接下来就读出完整的BMP图象文件内容, 用TImage的
ReadFromStream方法就可显示了.


 
MS := TMemoryStream.Create;
MS := CreateBlobStream(Table1.FieldByName('Image'), bmRead);
Image1.Picture.Bitmap.LoadFromStream(MS);
 
哈哈,如果发MemoryStram的方法麻烦,最简单的方法还是存到一个临时
文件里,然后再从文件中读出来,这样ole字段中的什么杂七杂八的信息
都会过滤掉。而且根据我的感觉,当图片大于1M以后,采用 MemoryStream的
速度和文件差不多。
 
马上就试,谢过先!
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
900
SUNSTONE的Delphi笔记
S
后退
顶部