3

我有一个 png 格式的图像幻灯片,如下所示: 幻灯片

我想知道如何剪辑每个图像并将这些图像放在 TImageList 控件中,始终保持透明度。

[编辑]

是的,在设计时 RRUZ 提到的技巧工作正常,但我想在运行时剪辑图像,即通过从资源或文件加载幻灯片

4

3 回答 3

4

您必须按照以下步骤操作:

  • ColorDepth属性设置为cd32Bit,

  • DrawingStyledsTransparent,

  • Height= 48,

  • Width=48,

然后加载图像,结果将是

在此处输入图像描述

于 2011-06-17T20:17:22.883 回答
1

只需导入图像列表。它会抱怨它太大,并愿意为你把它分成几块。在 D2005 上对我来说效果很好。

另一个很酷的提示:我使用 AWIcons Pro http://www.awicons.com/icon-editor/来编辑图标(不错的编辑器!)。它具有可以将图标导出为图像列表(.bmp 或 .png 格式)的功能,从而将幻灯片制作成图标。这使得以 .ico 格式编辑这些内容非常方便,一系列单元格的大小和深度都相同,每个单元格略有不同。然后导出为图像列表(我使用 .png),然后 Delphi 可以将它们分解为单个单元格。非常光滑。AWIcons 不是免费的,但像这样的功能确实使它变得高效。

于 2011-06-17T20:17:44.030 回答
1

在运行时,您必须调用 TImageList.FileLoad。除非它不起作用。

这反过来调用 ImageList_LoadImage,uFlags 参数值包括位 LR_LOADFROMFILE,这会导致 Windows 从磁盘上的文件加载。此基础功能仅支持 TBitmap (BMP) 格式。

请参阅几乎重复的问题。PNG 支持是一项设计时功能,可将 PNG 数据转换为内部的非 PNG 和不完全是 BMP 格式,供 MS 公共控件库在内部使用。以文本形式查看您的 DFM,您将看到您的 PNG 输入已变成什么。其他答案显示使用基于位图颜色的透明度保留了透明度。

如果您想以 PNG 格式保存数据,则不应使用 VCL TImageList 来存储它,因为您必须将 PNG 转换为 TBitmap 才能实际使用 TImageList。

于 2011-06-20T20:25:38.413 回答