Delphi:来自TImageList的TPicture

时间:2011-08-31 18:01:24

标签: delphi bitmap image timagelist

如何从TImageList获取TPicture?

我需要从图片列表中执行Image1.Picture:=...TPicture,将图片加载到TImage中。

图像列表存储所有透明的PNG图像。

我尝试使用位图(GetBitmap),但我需要的是透明度。不幸的是,我有一个使用位图的白色背景。

谢谢!

1 个答案:

答案 0 :(得分:4)

常规TImageList使用位图。虽然它们可以是部分透明的,但它实际上只是假的。在Delphi中,您可以通过为位图指定单个透明颜色来绘制透明位图。确切的颜色将被绘制为100%透明,而其他颜色则不是。通常颜色取自图像的左下角。

TPicture本身没有做任何事情。它只是TGraphic后代的容器。你必须找到一种可以透明的图像。

便捷的格式是PNG。 PNG事件支持alpha通道,这意味着可以为每个像素分配不同的透明度值。

幸运的是, TPngImageLists 结合了TImageList的易用性和PNG的强大功能。你可以阅读this article。它是荷兰语,但也许谷歌翻译可以帮助你。或许你可以找到关于这个主题的英语资源。我已经使用了这个图像列表,它很棒,因为你可以拥有带alpha通道的实际图标,并且仍然可以使用常规工具栏和速度按钮。