如何将png图像加载到TImage中

Rae*_*elB 5 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; 
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

Rae*_*elB 20

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;
Run Code Online (Sandbox Code Playgroud)