Delphi 2009 の TImageList は、画像リスト エディタに追加することで、PNG 画像をサポートしています。TImagelist から TPngImage を抽出し、アルファ チャネルを保持する方法はありますか?
私が実際にやりたいことは、1 つの TImageList から画像を抽出し、それらの無効なバージョンを作成してから、それらを別の TImageList に追加することです。この操作中、もちろん PNG 画像のアルファ チャネルを保持したいと思います。
Delphi 2009 の TImageList は、画像リスト エディタに追加することで、PNG 画像をサポートしています。TImagelist から TPngImage を抽出し、アルファ チャネルを保持する方法はありますか?
私が実際にやりたいことは、1 つの TImageList から画像を抽出し、それらの無効なバージョンを作成してから、それらを別の TImageList に追加することです。この操作中、もちろん PNG 画像のアルファ チャネルを保持したいと思います。
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;
これが、さらに探索するための十分な指針となることを願っています。