在Embarcadero C++Builder XE5中将.png加载到TImage中

Load .png to TImage in Embarcadero C++Builder XE5

本文关键字:加载 TImage png 中将 Embarcadero C++Builder XE5      更新时间:2023-10-16

我需要加载一个.png图像,因为我需要它的透明度。不能将其转换为bmp格式,因为我失去了它的透明度。我该怎么做?

只需为stdimage.hpp添加一个include。

在设计时,这将使.png文件在Image.Picture对话框中可用。在运行时,您可以创建并加载带有该文件的TPngImage,并将其分配给Image.Picture

#include <stdimage.hpp>
__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
  TPngImage* img = new TPngImage();
  img->LoadFromFile("C:\Images\calculator.png");
  Image1->Picture->Assign(img);
  delete img;
}

(包括Delphi代码和解释以及C++Builder,因为TImageTPngImage都是Delphi类,因此它是相关的,并且因为C++Builder用户应该非常熟悉翻译Delphi代码,因为整个VCL都是在它上面构建的。此外,由于TImage是Delphi VCL组件,Delphi用户可能会发现问题并发现有用的信息。)

procedure TForm4.Button1Click(Sender: TObject);
var
  Png: TPngImage;
begin
  Png := TPngImage.Create;
  try
    Png.LoadFromFile('C:Imagescalculator.png');
    Image1.Picture.Assign(Png);
  finally
    Png.Free;
  end;
end;

XE5文档中的更多信息

在C++Builder中,代码可能如下所示:

#include <pngimage.hpp>
....
std::auto_ptr<TPngImage> img(new TPngImage());
img->LoadFromFile(...);
Image1->Picture->Assign(img);