image从数据库中获取图片方法

本文介绍使用Delphi实现图片的存储与检索功能。通过TADOQuery组件与数据库交互,支持.bmp和.jpg格式图片文件的压缩及转换,并将图片作为二进制数据保存到数据库中。同时提供从数据库读取图片并显示的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

procedure  TForm1.GetPicture(pos:string;TempQuery:   TADOQuery);
var
  MS_JpegStream:TMemoryStream;
begin
  try
    MS_JpegStream:=TMemoryStream.Create;
    with  tempQuery  do
    begin
      close;
      sql.clear;
      sql.Add('select  tp   from   tp');
      Open;
    end;
    if   tempquery.FieldByName('tp').isnull   then
    begin
      image1.Picture.Graphic:=nil;
    end
    else
    begin
      (tempQuery.FieldByName('tp')   as   tblobfield).savetostream(MS_JpegStream);
      image1.Picture.Graphic:=nil;
      image1.Picture.Graphic:=TJpegImage.Create;
      MS_JpegStream.Position:=0;
      image1.Picture.Graphic.LoadFromStream(MS_JpegStream);
    end;
  finally
    MS_JpegStream.Free;
  end;
end;
 
procedure  TForm1.SetPicture(id:string;TempQuery:TADOQuery);
var
  MS_JpegStream:TMemoryStream;
  M_BitMap:TBitMap;
  M_Jpeg:TJpegImage;
begin
  OpenDialog1.Execute;
  try
    MS_JpegStream:=TMemoryStream.Create;
    M_BitMap:=TBitMap.Create;
    M_Jpeg:=TJpegImage.Create;
    if  ExtractFileExt(OpenDialog1.FileName)='.bmp'   then
    begin
      M_BitMap.LoadFromFile(OpenDialog1.FileName);
      M_Jpeg.Compress;
      M_Jpeg.Assign(M_BitMap);
    end
    else if extractfileext(OpenDialog1.FileName)='.jpg'   then
    begin
      M_Jpeg.LoadFromFile(OpenDialog1.FileName);
    end;
    M_Jpeg.SaveToStream(MS_JpegStream);
    with tempQuery do
    begin
      close;
      sql.clear;
      sql.Add('insert into tp (id,tp) values (''1'',:image)');
      Parameters.ParamByName('image').LoadFromStream(MS_JpegStream,ftblob);
      ExecSQL;
    end;
  finally
    MS_JpegStream.Free;
    M_BitMap.Free;
    M_Jpeg.Free;
  end;
end;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值