Загрузить .png в TImage в Embarcadero C ++ Builder XE5

Мне нужно загрузить изображение .png, потому что мне нужна его прозрачность. Это не вариант конвертировать, например, в BMP, потому что я теряю его прозрачность.
Как я могу это сделать?

1

Решение

Просто добавьте включение для stdimage.hpp,

Во время разработки это сделает файлы .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, потому что TImage а также TPngImage оба являются классами 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:\Images\calculator.png');
Image1.Picture.Assign(Png);
finally
Png.Free;
end;
end;

Больше информации в Документация XE5

3

Другие решения

В C ++ Builder код может выглядеть так:

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