Delphi 2009 的 TImageList 通过在 imagelist 编辑器中添加 PNG 图像来支持它们。有没有办法从 TImagelist 中提取 TPngImage 并保留 alpha 通道?
我想要做的实际上是从一个 TImageList 中提取图像,制作它们的禁用版本,然后将它们添加到另一个 TImageList。在此操作期间,我当然想保留 PNG 图像的 alpha 通道。
Delphi 2009 的 TImageList 通过在 imagelist 编辑器中添加 PNG 图像来支持它们。有没有办法从 TImagelist 中提取 TPngImage 并保留 alpha 通道?
我想要做的实际上是从一个 TImageList 中提取图像,制作它们的禁用版本,然后将它们添加到另一个 TImageList。在此操作期间,我当然想保留 PNG 图像的 alpha 通道。
我用 Delphi 2006 做了类似的事情。
TImageList 包含一个受保护的方法 GetImages。可以使用“受保护的错误”访问它
type
TGetImageImageList = class (TImageList) // Please use a better name!
end;
您可以将图像列表投射到 TGetImageImageList 以获取 GetImages。
begin
TGetImageList(ImageList).GetImages(index, bitmap, mask);
end;
位图包含位图,而掩码是确定透明部分的黑白位图。
您现在可以更改位图并将其存储使用:
function Add(Image, Mask: TBitmap): Integer;
我希望这能给你足够的指导来进一步探索。