delphi中,将数据库中的不同类型的图片显示出来,用什么控件来实现?
在delphi中,将各种类型的图片以流的方式放进到数据库中,再将这些图片以流的方式将这些图片显示出来,用什么组建来实现Timage,Tpicture?...
在delphi中,将各种类型的图片以流的方式放进到数据库中,再将这些图片以流的方式将这些图片显示出来,用什么组建来实现 Timage,Tpicture?
展开
2个回答
展开全部
可以通过流的头(也就是文件头)判断图片格式
然后分别用jpgimage.bitmap,pngobject,gifimage来装载流,然后显示到TImage里
还有一种方法是用GDI+的GPImage,把Stream转换成IStream,然后用GPImage.loadfromstream来装载图片,gpimage会自动识别图片格式并显示
然后分别用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;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
以下是我曾经写过程序的一段代码,用的是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;
希望有所帮助:
在界面上放了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格式的文件,对其他格式的文件还是显示不出来啊!
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询