次のようなpng形式の画像のフィルムストリップがあります。
各画像をクリッピングし、これらの画像を TImageList コントロールに配置して、常に透明度を維持する方法を知りたいです。
[編集]
はい、設計時にRRUZが言及したトリックは正常に機能しますが、リソースまたはファイルからフィルムストリップをロードすることにより、実行時に画像をクリップしたかったのです
次のようなpng形式の画像のフィルムストリップがあります。
各画像をクリッピングし、これらの画像を TImageList コントロールに配置して、常に透明度を維持する方法を知りたいです。
[編集]
はい、設計時にRRUZが言及したトリックは正常に機能しますが、リソースまたはファイルからフィルムストリップをロードすることにより、実行時に画像をクリップしたかったのです
次の手順に従う必要があります。
ColorDepth
プロパティをcd32Bit
に設定します。
DrawingStyle
にdsTransparent
、
Height
= 48,
Width
=48、
次に画像をロードすると、結果は次のようになります
実行時に、TImageList.FileLoad を呼び出す必要があります。それがうまくいかないことを除いて。
これは次に、ビット LR_LOADFROMFILE を含む uFlags パラメーター値で ImageList_LoadImage を呼び出します。これにより、Windows はディスク上のファイルからロードされます。この基礎となる機能は、TBitmap (BMP) 形式のみをサポートします。
ほぼ重複する質問を参照してください。PNG のサポートは、PNG データを、MS Common Controls ライブラリによって内部的に使用される内部の非 PNG 形式および厳密には BMP 形式ではない形式に変換する設計時の機能です。DFM をテキストとして表示すると、PNG 入力がどのように変換されたかがわかります。他の回答は、ビットマップカラーベースの透明度を使用して透明度が保持されていることを示しています。
データを PNG 形式で保存したい場合は、VCL TImageList を使用して保存しないでください。実際に TImageList を使用するには、PNG から TBitmap に変換する必要があるからです。
イメージリストにインポートするだけです。大きすぎると文句を言って、バラバラにしてくれます。D2005で問題なく動作します。
もう 1 つのクールなヒント: 私は AWIcons Pro http://www.awicons.com/icon-editor/を使用してアイコンを編集します (素晴らしいエディターです!)。アイコンをイメージリスト (.bmp または .png 形式) としてエクスポートできる機能があるため、アイコンからフィルムストリップを作成できます。これにより、一連のセルがすべて同じサイズと深さで、各セルがわずかに異なる .ico 形式でこれらのものを編集すると非常に便利になります。次に、イメージリスト (私は .png を使用) としてエクスポートすると、Delphi はそれらを個々のセルに分割できます。とても滑らかです。AWIcons は無料ではありませんが、このような機能により生産性が向上します。