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

如何在Delphi中从Blob字段中提取jpg并在TImage中显示?,delphi,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

我有以下代码,但它不会在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;

为什么这样不行?我在这两种形式的uses子句中都使用了jpeg。但是图像中没有显示任何内容….

您不需要先将其流式传输到TJPEG中,然后将其分配到图像中吗?我这里没有现成的代码(尽管我可以稍后再去挖掘),但是当我在过去这样做的时候,我很确定我必须做一些类似的事情

MyJPeg.LoadFromStream MyJPeg.LoadFromStream 接

MyPicture.Graphic.Bitmap.Assign(MyJPeg)...?
MyPicture.Graphic.Bitmap.Assign(MyJPeg)…好的-我刚试过,但没有成功。jpg仍然没有出现在TImage中……TImage有什么不寻常的地方吗?是动态创建的还是表单组件?只是想知道是否有句柄/父级问题。你能临时破解你的代码,从本地文件加载位图,只是为了测试TImage肯定会显示图形吗?如果你已经试过/考虑过了,那么很抱歉!rob,你知道了-我知道它没有显示bmp文件是好的。但我不知道为什么,它只是一个标准的TImage组件…如果我切换到表单的ShowModal,它会显示bmp文件在显示后尝试sf.imgDisplay.Refresh,这可能只是因为它没有机会重新绘制窗口。另请参阅
uses
   ... DB;

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