从数据库里读取图片并显示

本文介绍了一种从数据库的Blob字段中读取并显示图片的方法。通过使用TADOBlobStream,我们可以将图片数据从数据库读取到内存中,然后将其保存到临时文件,最后在图像控件上显示该图片。这种方法适用于需要在应用程序中动态加载和显示数据库中存储的图片场景。

procedure TForm_QTOrder1.ShowPic;
var
  vStr:TADOBlobStream;
  vTmp,vPicType:string;
  vtmpPath:PChar;
begin
  inherited;

  Image1.Picture.Graphic:=nil;  //清空图像控件里的图像
  vstr:=TADOBlobStream.Create(TBlobField(QueryBill4.FieldByName('Pics')),bmRead);  //创建BlobStream,设定Pics字段为Blob字段,并设为只读
  if vstr.Size=0 then  //Stream的大小为0说明没有图像,退出
  begin
    exit;
  end;
  vPicType:=CheckImgType(vStr);    //判断图像类型
  vstr.Position:=0;                                 //指针移动到开头
  GetMem(vtmpPath,MAX_PATH);  //获取临时目录
  GetTempPath(MAX_PATH,vtmpPath);//获取临时目录
  vTmp:=StrPas(vtmpPath);            //获取临时目录
  FreeMem(vtmpPath);  //释放变量
  vTmp:=vTmp+PubData1.GetGUIDString+'.'+vPicType;  //将临时目录和文件名合成全路径文件名
  TBlobField(QueryBill4.FieldByName('Pics')).SaveToFile(vTmp);  //从Blob字段读取图像数据保存到临时文件
  Image1.Picture.LoadFromFile(vTmp);  //图像控件读取临时文件
  DeleteFile(vTmp);  //删除临时文件
  Application.ProcessMessages;
end;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值