首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

timage怎么显示blob中的图象

2012-02-12 
timage如何显示blob中的图象各位大虾:当我使用下面的语句时:procedureTForm1.Button3Click(Sender:TObject

timage如何显示blob中的图象
各位大虾:当我使用下面的语句时:
procedure   TForm1.Button3Click(Sender:   TObject);
begin
image1.Picture.bitmap.Assign   (TBlobField(query1.FieldbyName( 'pic ')));
end;
end.
delphi报错   "bitmap   image   is   not   valid ".   位图图象绝对没问题,我已经试过多次。我用的数据库是access   2000   。
当我改为下面的代码:
procedure   TForm1.Button1Click(Sender:   TObject);
var
b:Tmemorystream;
begin
b:=Tmemorystream.create   ;
tblobfield(query1.FieldByName( 'pic ')).SaveToStream   (b);
image1.Picture.Bitmap.LoadFromStream   (b)   ;
end;
delphi没有任何错误出现,但是image中根本不显示图象。query1的查询无问题,我也试过多次。(用dbimage也是一样)
请问那位仁兄可解此问题,image如何才能显示blob中的图象呢?

[解决办法]
image1好像只能直接显示数据库中的bmp,其它格式的不行
[解决办法]
和什么数据库没有关系。
不能显示有2个可能。
1、你的代码有错误,
tblobfield(query1.FieldByName( 'pic ')).SaveToStream (b);
/////////加一句 b.Position:=0;
image1.Picture.Bitmap.LoadFromStream (b) ;

2、数据库中保存的是JPG文件,不是BMP,(也可以是其他类型文件,处理比较麻烦)
可以这样处理:
jp := TJPEGImage.Create;
jp.LoadFromStream(b);
try
image1.Picture.Bitmap.Assign(jp);
finally
jp.Free;
end;

热点排行