3

Delphi 2009 の TImageList は、画像リスト エディタに追加することで、PNG 画像をサポートしています。TImagelist から TPngImage を抽出し、アルファ チャネルを保持する方法はありますか?

私が実際にやりたいことは、1 つの TImageList から画像を抽出し、それらの無効なバージョンを作成してから、それらを別の TImageList に追加することです。この操作中、もちろん PNG 画像のアルファ チャネルを保持したいと思います。

4

1 に答える 1

1

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;

これが、さらに探索するための十分な指針となることを願っています。

于 2008-10-09T14:42:57.060 に答える