如何制作PNG资源?

Mas*_*ler 35 delphi resources png delphi-2009

我有一个带有大型TImage的表单作为背景.问题是,它作为位图直接存储在DFM中,占用大约3 MB.原始的PNG文件大约是250K.我想尝试通过在资源中嵌入PNG来减少膨胀,然后在OnCreate期间使用表单加载它.我现在可以这样做,因为Delphi 2009包含PNG支持,除了我不太清楚如何使用PNG构建资源文件.有谁知道这是怎么做的?

Ond*_*lle 54

示例文本文件(名为myres.rc):

MYPNG RCDATA mypng.png
Run Code Online (Sandbox Code Playgroud)

添加到项目中:

{$R 'myres.res' 'myres.rc'}
Run Code Online (Sandbox Code Playgroud)

在运行时加载的示例:

uses
  PngImage;

var
  Png: TPngImage;
begin
  Png := TPngImage.Create;
  try
    Png.LoadFromResourceName(HInstance, 'MYPNG');
    Image1.Picture.Graphic := Png; // Image1: TImage on the form
  finally
    Png.Free;
  end;
end;
Run Code Online (Sandbox Code Playgroud)

  • LoadFromResourceName专门查找RCDATA类型的资源. (11认同)
  • 好问题,Rob.我当前安装的Platform SDK适用于Windows Server 2003 R2,我在WinUser.h中找不到特定于PNG的常量.不过我不确定.它可能在其他地方声明,也许在更高版本的Platform SDK中声明. (2认同)