打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
数据库中图片操作

数据库中图片操作

时间:2011-5-30来源:yang 作者: peng点击: 11次

把BMP,JPG图片保存到数据库中及从数据库中取出来显示在iamge上.

procedure TInputResultForm.SaveClick(Sender: TObject);
var
  JPeg: TJPegImage;
  Bmp: TBitmap;
  ff:  Tgraphicfield;    //存放bmp的字段
  mm:  tmemorystream;
begin
  try
    Bmp := TBitmap.Create;
    JPeg := TJPegimage.Create;
    mm:=Tmemorystream.create;
    DM.adoExeAttch.Edit;
  if OpenDialog1.Execute then
    if UpperCase(copy(Opendialog1.FileName,length(Opendialog1.FileName)-2,3))=‘BMP‘ then begin
      Bmp.LoadFromFile(Opendialog1.FileName);
      JPeg.Assign(Bmp);
      JPeg.savetostream(mm);
      TBlobField(DM.adoExeAttch.FieldByName(‘Image1‘)).LoadFromStream(mm);
    end else begin
      JPeg.LoadFromFile(Opendialog1.FileName);
      TBlobField(DM.adoExeAttch.FieldByName(‘Image1‘)).loadfromfile(Opendialog1.FileName);
    end;
    Image1.Picture.Assign(jpeg);
  finally
    JPeg.Free;
    mm.free;
    Bmp.Free;
  end;
end;

procedure TInputResultForm.LoadClick(Sender: TObject);
var
  m:TMemoryStream;
  jpg:TJpegImage;
begin
  inherited;
  m := TmemoryStream.Create;
  if TBlobField(DM.adoExeAttch.FieldByName(‘Image1‘)).BlobSize>0 then
  try
    (DM.adoExeAttchImage1 as TBlobField).SaveToStream(m);
    jpg := TJpegImage.Create;
    m.Position := 0;
    jpg.LoadFromStream(m);
    Image1.Picture.Assign(jpg);
    jpg.Free;
  except
    showmessage(‘供应商上传的图片格式不正确,无法浏览!‘)
  end else
    Image1.Picture.Assign(nil);
  m.Free;
end;

或者:

直接存储方式
Var meJpeg:TJpegImage ;
    sType:String ;
begin
  inherited;
  If OpenPictureDialog1.Execute Then
  Begin
    sType:=ExtractFileExt(OpenPictureDialog1.FileName)  ;
    If (UpperCase(sType)=‘.JPEG‘) or (UpperCase(sType)=‘.JPG‘) Then
    Begin
      Try
        meJpeg:=TJpegImage.Create ;
        meJpeg.LoadFromFile(OpenPictureDialog1.FileName) ;
        DBImage1.Picture.Graphic.Assign(meJpeg) ;
      Finally
        meJpeg.Free ;
      End ; //Try
    End
    Else TBlobField(QInfoBase.FieldByName(‘fPicture‘)).LoadFromFile(OpenPictureDialog1.FileName) ;
    End ; //If Type
  end ;  //If OpenDialog

使用流存储方式
Var ms:TMemoryStream ;
    mJpeg:TJpegImage ;
    sType:String ;
begin
  inherited;
  If OpenPictureDialog1.Execute Then
  Begin
    sType:=ExtractFileExt(OpenPictureDialog1.FileName) ;
    ms:=TMemoryStream.Create ;
    mJpeg:=TJpegImage.Create ;
  Try
    ms.LoadFromFile(OpenPictureDialog1.FileName)  ;
    ms.Position:=0 ;
    If (UpperCase(sType)=‘.JPEG‘) or (UpperCase(sType)=‘.JPG‘) Then
      Begin
        mJpeg.LoadFromStream(ms) ;
        DBImage1.Picture.Bitmap.Assign(mJpeg) ;
      End
    Else
      TBlobField(QInfoBase.FieldByName(‘fPicture‘)).LoadFromStream(ms) ;
  Finally
    ms.Free ;
    mJpeg.Free ;
  End ;
  end ;  //If OpenDialog
End ;  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Delphi压缩图片代码
delphi实现bmp与jpg图像相互转换及位图大小调整
Delphi 文件操作(3)
修改图片尺寸的DELPHI源代码
delphi实现批量缩略图生成工具开发代码
第八章 对象链接与嵌入(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服