0

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

4

4 回答 4

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 单位添加到单位文件的uses子句中。

于 2008-09-16T03:49:15.900 回答
0

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

于 2008-09-15T19:15:12.560 回答
-1

看看这里。 我认为您必须将其转换为流,存储它,反之亦然。

于 2008-09-15T12:08:55.817 回答
-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 有效”

于 2014-12-29T16:14:04.613 回答