Delphi のコミュニティの場でこんな質問がありました.
[Imageに読み込んだ画像の透明度を変化させるには?]
http://hpcgi1.nifty.com/MADIA/DelphiBBS/wwwlng.cgi?print+201307/13070020.txt
質問された方の意図することを正確に理解しているわけではありませんか゜,少なくとも最初の質問の要求内容は,
Harry さんのサンプルコードが満たしていると思います.
panache 2013/07/19(金) 22:57:56 の発言のように,
別々の画像を TImage に描画して,同じ様な機能を実現するには無理があります.
TImage は,台紙のような用途に向いています.
別の台紙を重ねて表示した時に,下の台紙が透けて見えては困る場合等です.
部分的に透明にはできます.
また,
Image1.Picture.LoadFromFile( );; Image1.Picture.Assign( );
というコードは,固定した画像を描画する時に使用します.
画像の上に更に画像を表示したり,追加の描画を行う場合は,Draw メソッド等を使用することになります.
下の画像は,質問者が提示した以下のページからダウンロードしたサンプルを,少し改変して実行したものです.
http://firestorage.jp/download/5be96873e8c3a0e007504927e65e3631a66d9dac
TImage の上に TImage を重ねていますが,上の方の,人の様なビットマップ画像の周囲を透過して,
その TImage の Transparent を True にしています.このくらいのことであれば可能ですが,個人的には無理があると思っています.
私のサイトの GDI+ のサンプルでは,ほとんど TPanel か TForm の Canvas に描画しています.OnPaint や Paint メソッド内で描画しています.
TImage はいろいろ意味で便利ですが,TPanel や TForm の Canvas に描画する方法は,オーバーレイ等,重ね描画には便利です.
TImage のように,再描画の際に,描画済みの内容をクリアする必要がありません.
* 以上は VCL の場合です.FMX (Fire Monkey) の場合は,TImage の機能は VCL と少し違います.
|