如何从TImageList获取TPicture?
我需要从图片列表中执行Image1.Picture:=...TPicture
,将图片加载到TImage中。
图像列表存储所有透明的PNG图像。
我尝试使用位图(GetBitmap
),但我需要的是透明度。不幸的是,我有一个使用位图的白色背景。
谢谢!
答案 0 :(得分:4)
常规TImageList使用位图。虽然它们可以是部分透明的,但它实际上只是假的。在Delphi中,您可以通过为位图指定单个透明颜色来绘制透明位图。确切的颜色将被绘制为100%透明,而其他颜色则不是。通常颜色取自图像的左下角。
TPicture本身没有做任何事情。它只是TGraphic后代的容器。你必须找到一种可以透明的图像。
便捷的格式是PNG。 PNG事件支持alpha通道,这意味着可以为每个像素分配不同的透明度值。
幸运的是, TPngImageLists 结合了TImageList的易用性和PNG的强大功能。你可以阅读this article。它是荷兰语,但也许谷歌翻译可以帮助你。或许你可以找到关于这个主题的英语资源。我已经使用了这个图像列表,它很棒,因为你可以拥有带alpha通道的实际图标,并且仍然可以使用常规工具栏和速度按钮。