如何设置TIcon实例以支持Alpha通道图标(SupportsPartialTransparency)

时间:2016-02-02 03:51:32

标签: c++builder delphi-2009 vcl

使用Borland C ++ Builder 2009我注意到在替换TImagelist中的图像时,alpha通道数据会以某种方式被破坏。

TIcon *Icon = new TIcon() ;
for (int x = 0 ; x < OS_Specific_count ; x++)
  {
  OS_xx_ImageList->GetIcon(x, Icon) ;
  Use_ImageList->ReplaceIcon(x, Icon) ; 
  }
delete Icon ;

问题也在另一个Q(TImageList - True color + alpha channel vs. 8-bit (256 colors))中描述(+屏幕),但我现在正试图通过更具体的问题缩小范围。

在帮助文件中浏览TIcon时,我注意到了一个只读属性:SupportsPartialTransparency。 在我的案例中似乎是false,我想知道这不是解决这个问题的关键吗? Icon->Transparent = true未将SupportsPartialTransparency设置为true!

我想知道我能做些什么来确保TIcon实例正确“获取”并“替换”alpha通道信息?

ImageLists在设计时创建并具有默认属性(未更改)并包含通过IDE导入的16x16图标。导入的图标包含Alpha通道信息。

1 个答案:

答案 0 :(得分:-1)

我只使用TPngImageList,它与TImageList兼容。此外,设计时编辑器更灵活:您需要将.ico转换为.png。 editor

免费且广泛使用,例如:https://github.com/TurboPack。自从没有透明度的头疼:) BTW,将图标保持为PNG更合适,您可以在其他开发工具和平台上使用它们。

相关问题