delphi中,将数据库中的不同类型的图片显示出来,用什么控件来实现?

在delphi中,将各种类型的图片以流的方式放进到数据库中,再将这些图片以流的方式将这些图片显示出来,用什么组建来实现Timage,Tpicture?... 在delphi中,将各种类型的图片以流的方式放进到数据库中,再将这些图片以流的方式将这些图片显示出来,用什么组建来实现 Timage,Tpicture? 展开
 我来答
lovesky0414
2013-11-27 · TA获得超过3353个赞
知道大有可为答主
回答量:1610
采纳率:66%
帮助的人:1583万
展开全部
可以通过流的头(也就是文件头)判断图片格式
然后分别用jpgimage.bitmap,pngobject,gifimage来装载流,然后显示到TImage里
还有一种方法是用GDI+的GPImage,把Stream转换成IStream,然后用GPImage.loadfromstream来装载图片,gpimage会自动识别图片格式并显示
追问
以流得方式怎样判断格式,我从网上看了一下,都是获取的文件流,在判断的格式,从数据库中以流得方式读出来能判断格式吗,给段代码吧
追答
var
  Buffer:Word;
begin
// stream 是你从数据库取出来的流
  Stream.Position := 0;
  Stream.ReadBuffer(Buffer,2);
  case Buffer of
    $4D42: ShowMessage('bmp');
    $D8FF: ShowMessage('jpg');
    $4947: ShowMessage('gif');
    $4238: ShowMessage('png');
    $4949: ShowMessage('tiff');
    $050A: ShowMessage('pcx');
    $4238: ShowMessage('psd');
    $A659: ShowMessage('ras');
    $DA01: ShowMessage('sgi');
  else
    ShowMessage('无法识别格式');
  end;
end;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f2b7b2a
2013-11-26 · TA获得超过702个赞
知道小有建树答主
回答量:342
采纳率:100%
帮助的人:295万
展开全部
以下是我曾经写过程序的一段代码,用的是oracle数据库和delphi
希望有所帮助:
在界面上放了TadoTable和Timage控件
var
jpg:TJPEGImage;
myStream:TmemoryStream;
begin
if adoTable_main.ControlsDisabled then exit;
if (TBlobField(adotable_main.FieldByName('photo_sample')).BlobSize>0) then
begin
try
jpg:=TJPEGImage.Create;
myStream:=TMemoryStream.Create;
TBlobField(adotable_main.FieldByName('photo_sample')).SaveToStream(myStream);
myStream.Position:=0;
jpg.LoadFromStream(myStream);
image1.Picture.Assign(jpg);
finally
jpg.Free;
myStream.Free;
end;
end else
image1.Picture.Graphic:=nil;
end;
追问
但是你这个只能处理jpg格式的文件,对其他格式的文件还是显示不出来啊!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式