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