如何进行JPG图片的存入及读取

1、将JPG文件存入数据库

procedure TForm1.jpgsave(wj:string);

        var bmp:tbitmap;jpg:TJPEGImage;ms:tmemorystream;
begin
         Image1.Picture.LoadFromFile(wj);
         jpg:=TJPEGImage.Create;
         Jpg.Assign(Image1.Picture);

         ms:=Tmemorystream.Create;

        Jpg.SaveToStream(MS);
     with Clientdataset1  do
     begin
         if active then close;
         commandtext:='select phot from table1';
         open;
         edit;
         TBlobfield(cds.fieldbyname('phot')).LoadFromStream(ms);
         post;
         ApplyUpdates(0);
     end;
end;
 

2、将JPG文件从数据库读出显示

procedure jpgread(wj:string);
    var ms:TMemoryStream;jpg:TJPEGimage;
begin
   Jpg := TJPEGImage.Create;
   MS := TMemoryStream.Create;
     with Clientdataset1  do
     begin
       if active then close;
       commandtext:='select phot from table1';
       open;
       TBLobfield(fieldbyname('phot')).SaveToStream(MS);
       MS.Seek(0, soFromBeginning);
       with Jpg do
                  begin
                     PixelFormat := jf24Bit;
                     Scale := jsFullSize;
                     Grayscale := False;
                     Performance := jpBestQuality;
                     ProgressiveDisplay := True;
                     ProgressiveEncoding := True;
                     LoadFromStream(MS);
                  end;
         Image1.Picture.Assign(Jpg);
    end;
end;

3、通过参数传递进行存储

procedure TUniFrame1.UniBitBtn3Click(Sender: TObject);
//图片保存数据库
begin
UniQuery2.Close;
UniQuery2.SQL.Clear;
mySql:='update paper_info set user_image=:p1 where rowid=:p2';
UniQuery2.SQL.Add(mySql);
UniQuery2.ParamByName('p1').LoadFromFile(destFile,ftBlob);//保存图片到数据库
UniQuery2.ParamByName('p2').Value:=rowId;
UniQuery2.ExecSQL;
if UniQuery2.RowsAffected>0 then
    begin
        ShowMessageN('图片写入数据库成功!');
    UniQuery1.Refresh;
    end
else
    begin
    ShowMessageN('图片写入数据库失败!'); //刷新查询结果以展示图片
    end;
end;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值