如何将jpg图像保存到数据库,然后使用FIBplus和TImage在Delphi中加载?

时间:2008-09-15 11:46:37

标签: delphi timage fibplus

如何将jpg图像保存到数据库,然后使用FIBplus和TImage在Delphi中加载?

4 个答案:

答案 0 :(得分:3)

var
  S : TMemoryStream;
begin
  S := TMemoryStream.Create;
  try
    TBlobField(AdoQuery1.FieldByName('ImageField')).SaveToStream(S);
    S.Position := 0;
    Image1.Picture.Graphic.LoadFromStream(S);
  finally
    S.Free;
  end;
end;

如果您使用的是JPEG图像,请将JPG单位添加到单位文件的使用子句。

答案 1 :(得分:0)

This page解释了这一点。如果您不想要临时文件,请使用SaveToStream和TMemoryStream而不是SaveToFile。 TImage.Picture有一个LoadFromStream,可以将图像从流加载到TImage中进行显示。

答案 2 :(得分:-1)

Take a look here. 我认为你必须将它转换为流,存储它,反之亦然。

答案 3 :(得分:-1)

Delphi 7悖论表

将dbimage插入jpeg

var
  FileStream: TFileStream;
  BlobStream: TStream;
begin
  if openpicturedialog1.Execute then
  begin
    Sicil_frm.DBNavigator1.BtnClick(nbEdit);
    image1.Picture.LoadFromFile(openpicturedialog1.FileName);
    try
       BlobStream := dm.sicil.CreateBlobStream(dm.sicil.FieldByName('Resim'),bmWrite);
       FileStream := TFileStream.Create(openpicturedialog1.FileName,fmOpenRead or fmShareDenyNone);
       BlobStream.CopyFrom(FileStream,FileStream.Size);
       FileStream.Free;
       BlobStream.Free;
       Sicil_frm.DBNavigator1.BtnClick(nbPost);
       DM.SicilAfterScroll(dm.sicil);
     except
       dm.sicil.Cancel;
     end;
  end;
end;

错误"位图图像是nat有效的"

相关问题