blob字段在Access中如何实现JPEG图片的入库(200分)

  • 主题发起人 主题发起人 chrisn
  • 开始时间 开始时间
C

chrisn

Unregistered / Unconfirmed
GUEST, unregistred user!
在Access中定义了OLE字段,在delphi中漠认为TBlob类型
在实现JPEG图象入库时用了几种方法都不行
adoquery1.Append;
tblobfield(adoquery1.FieldByName('image')).LoadFromFile(openpicturedialog1.filename) ;
adoquery1.Post;
提示错误:Bitmap image is not valid
不知道如何解决
 
uses jpeg;
....
var MyImg:TJpegImage;
MyStream:TMemoryStream;
...
try
MyImg:=TjpegImage.Create;
MyImg.LoadFromFile(...);
MyStream:=TMemoryStream.Create;
Myimg.SavetoStream(MyStream);
(MyQuery.FieldByName('MyBlobField') as TBlobField).LoadFromStream(MyStream);

finally
MyImg.Free;
MyStream.Free;
end;
 
我有一个控件,dbimageEX,给我发信,我给你发一个,和dbimage用法一样支持多种格式
qixiangfeng@263.net
 
你照着下面的方法就行.另外,你是否有一个DBIMAGE控件?因为DBIMAGE控件只能打开BMP格式
的图片,所以,你直接读JPG的要出问题.要先转化一下格式就可.另外,在uses部分要加上
Jpeg;

:DBImage.Picture.bitmap.assign(JpgPic);//加在下面代码中,DBIMAGE就可显示JPG图片了.
var tempStream:TMemoryStream;
JpgPic:TJpegImage;
begin
try
JpgPic:=TJpegImage.Create;
tempStream:=TMemoryStream.Create;
tempStream.clear;
adoquery1.Append;
JpgPic.LoadFromFile(openpicturedialog1.filename);
DBImage.Picture.bitmap.assign(JpgPic);//若你想DBIMAGE显示JPG图像就可这样.
JpgPic.SaveToStream(tempStream);
tblobfield(adoquery1.FieldByName('image')).LoadFromStream(tempStream) ;
adoquery1.Post;
finally
JpgPic.Free;
tempStream.Free;
end;
这是保存的方法,读取图片也要转换一下才行.
 
谢谢几位大虾拉

 
zhangkan:
我看不懂你其中的几句,我想在dbimage中显示得时候我该用什么函数将其转化成流格式并最终通过dbimage显示出来呢?
能给段代码吗?我才开始学,太谢谢你了
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
790
import
I
后退
顶部