如何将png图像加载到TImage中

时间:2015-11-08 16:02:43

标签: delphi

我正在尝试使用Delphi XE4将png图像加载到TImage中。 png从一个流开始:例如

  Stream := TMemoryStream.Create;
  try
    Stream.LoadFromFile('c:\file.png');
    Stream.Position := 0;
    Image1.Picture.Graphic.LoadFromStream(Stream);
  finally
    Stream.Free;
  end; 

运行此代码时,我得到了一个AV。谁能告诉我我做错了什么?

感谢。

1 个答案:

答案 0 :(得分:19)

TImage.Picture.Graphic属性为零,直到您将图形加载到Picture

您要求的内容可以通过以下方式实现:

  uses pngimage;

  Stream := TMemoryStream.Create;
  try
    // obtain png image, load from file or other..
    ....
    Image := TPngImage.Create;
    try
      Stream.Position := 0;
      Image.LoadFromStream(Stream);
      Image1.Picture.Graphic := Image;
    finally
      Image.Free;
    end;
  finally
    Stream.Free;
  end;