Google

星期一, 十一月 19, 2007

Delphi中显示字段中的图像

//感谢大家的支持,问题已搞惦,总结如下:
//用Image控件显示表中的GIF、JPEG格式图像,可以用流的方式和创建临时文件的方式显示,
//我的Image控件支持GIF、JPEG等图像,以下已在Win98+Delphi5.0下通过。
procedure TMainForm.ShowGIFBtnClick(Sender: TObject);
var
AGif: TGIFImage;
MS: TMemoryStream;
begin
AGif :=TGIFImage.Create;
try
MS := TMemoryStream.Create;
try
TBlobField(Table1.FieldByName('GifField')).SaveToStream(MS);
//此时MS.Position指针位置在Gif文件的最后一个字节
//下面是关键,我搞了一天才搞惦,哈哈......
MS.Position:=0;//只有将其复位才能显示出来
AGif.LoadFromStream(MS);
Image1.Picture.Bitmap.Assign(AGif);
finally
MS.Free;
end;
finally
AGif.Free;
end;
end;

//要显示Jpeg图像需要加入 uses Jpeg;
procedure TMainForm.ShowJPEGBtnClick(Sender: TObject);
var
AJpeg: TJpegImage;
MS: TMemoryStream;
begin
AJpeg :=TJpegImage.Create;
try
MS := TMemoryStream.Create;
try
TBlobField(Table1.FieldByName('JpegField')).SaveToStream(MS);
MS.Position:=0;//加上这一句后搞惦,哈哈......
AJpeg.LoadFromStream(MS);
Image1.Picture.Bitmap.Assign(AJpeg);
finally
MS.Free;
end;
finally
AJpeg.Free;
end;
end;

//用此创建临时文件的方法显示
procedure TMainForm.ShowTMPBtnClick(Sender: TObject);
var
AGif:TGIFImage;
begin
TBlobField(Table1.FieldByName('GifField')).SaveToFile('c:\temfile.gif');
AGif:=TGIFImage.Create;
AGif.LoadFromFile('c:\temfile.gif');
Image1.Picture.Graphic:=AGif;
DeleteFile('c:\temfile.gif');
end;

http://topic.csdn.net/t/20010607/20/149990.html

我想显示 Paradox 表中的GIF图像,表中有一个Graphic字段,其中放入BMP位图,可以用DBimage显示,但放入GIF无法显示。
在表中设一BLOB字段,放入了GIF或JPG格式图像,用下面流的方式也不能在Image中显示:
aStream := TBlobStream.Create(theGifField, bmRead);
Image.Picture.Graphic.LoadFromStream( aStream );
aStream.Free;
请问如何能够显示。

标签:

0 条评论:

发表评论

<< 主页

辽ICP备05003652号
流风洄雪听天籁,轻云蔽日看落花

Powered by Blogger