Я бы хотел загрузить ресурс PNG в TGPImage.
Все примеры, которые я нашел, используют Bitmap Draw, который теряет прозрачность.
Следующий пример показывает только черную картинку:
_shipImage := TGPImage.Create();
ms := TMemoryStream.Create();
png := TPngImage.Create;
try
png.LoadFromResourceName(HInstance, 'SHIP_RIGHT');
ms.Position := 0;
png.SaveToStream(ms);
ms.Position := 0;
sa := TStreamAdapter.Create(ms);
_shipImage.FromStream(sa);
finally
//sa.Free(); //Invalid pointer operation
png.Free();
ms.Free();
end;
Следующее тоже не работает:
_shipImage := TGPImage.Create();
rs := TResourceStream.Create(HInstance, 'SHIP_RIGHT', RT_RCDATA);
rs.Position := 0;
sa := TStreamAdapter.Create(rs, soOwned);
_shipImage.FromStream(sa);