如何从Delphi中的Blob字段中提取jpg并在TImage中显示?

时间:2010-10-21 13:27:56

标签: delphi

我有以下代码,但它不会在TImage中显示jpg:

  sf := TfrmSplash.Create(nil);
  ms := TMemoryStream.Create;
  try
    bf := TBlobField(dbfuncs.tblBlobs.FieldByName('BBlob'));
    bf.SaveToStream(ms);
    ms.Position := 0;
    sf.imgDisplay.Picture.Graphic.LoadFromStream(ms);
    sf.Show;
    Sleep(2000);
  finally
    ms.Free;
    sf.Free;
  end;

为什么这不起作用?我在两种形式的使用条款中都有jpeg。但图像中没有显示任何内容......

2 个答案:

答案 0 :(得分:2)

您是否必须首先将其流式传输到TJPEG中,然后将其分配到TImage中?我这里没有方便的代码(虽然可以在以后详细说明)但是当我过去这样做时,我很确定我必须做类似的事情

MyJPeg.LoadFromStream

接着是

MyPicture.Graphic.Bitmap.Assign(MyJPeg)...?

答案 1 :(得分:2)

uses
   ... DB;

TBlobField(dbfuncs.tblBlobs.FieldByName('BBlob')).LoadFromFile('file name');
TBlobField(dbfuncs.tblBlobs.FieldByName('BBlob')).LoadFromStream();