首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将.png加载到TImage中的Embarcadero C++Builder XE5

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

Stack Overflow用户
提问于 2014-04-24 12:54:54
回答 2查看 9.3K关注 0票数 3

我需要加载一个.png图像,因为我需要它的透明度。它不是一个选择,转换它,例如,在bmp,因为我失去了它的透明度。我怎么能这么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-24 13:20:31

只需为stdimage.hpp添加一个包含即可。

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

代码语言:javascript
运行
复制
#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++生成器,因为TImageTPngImage都是Delphi类,因此它是相关的,因为C++ Builder用户应该非常熟悉翻译Delphi代码,因为整个TPngImage都是在它的基础上构建的。而且,由于TImage是Delphi组件,德尔福用户可能会发现问题,并且发现信息也很有用。)

代码语言:javascript
运行
复制
procedure TForm4.Button1Click(Sender: TObject);
var
  Png: TPngImage;
begin
  Png := TPngImage.Create;
  try
    Png.LoadFromFile('C:\Images\calculator.png');
    Image1.Picture.Assign(Png);
  finally
    Png.Free;
  end;
end;

XE5文档中的更多信息

票数 3
EN

Stack Overflow用户

发布于 2014-04-24 14:54:29

在C++生成器中,代码可能如下所示:

代码语言:javascript
运行
复制
#include <pngimage.hpp>
....
std::auto_ptr<TPngImage> img(new TPngImage());
img->LoadFromFile(...);
Image1->Picture->Assign(img);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23269531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档