|
DelphiXE3 [FMX] 画像合成効果(NormalBlendEffect)2013/12/04 |
前回は [Effects]内の「非透過部の塗り潰し効果」(FillRGBEffect)について見てみました。次は同じく [Effects]内の「画像合成効果」(NormalBlendEffect)を見てみます。
[Effects]内
FMX | |
ヘルプより。
TNormalBlendEffect は、2 つの画像の標準ブレンド効果を作成するためのクラスです。
TNormalBlendEffect は表示オブジェクトのテクスチャに影響を及ぼします。詳細は、「TImageFXEffect」および「FireMonkey の画像効果」を参照してください。
標準ブレンドは、効果が適用されるオブジェクトのテクスチャと、Target プロパティで指定されたビットマップの間で行われます。Target が指定されない場合、TNormalBlendEffect の視覚効果はありません。Target の画像に透明な領域がない場合、オブジェクトの画像は Target で完全に覆われます。 |
コンポーネントに透過指定の画像ファイル(GIF/PNG形式)を重ねて表示する感じ?
|
Target
混ぜる 2 つ目のテクスチャを示します。
Target は、TBitmap 型です。Target が指定されない場合、TNormalBlendEffect に視覚的な効果は現れません。 Target イメージに透明な領域がなかった場合、オブジェクト イメージは完全に Target でカバーされます。 |
|
Trigger
トリガ条件を保有するプロパティ。
それぞれのトリガ条件は、プロパティ名、等号記号、トリガ値で構成されます。すべての組み込みトリガはブール値です。したがって、それらの値は True または False でなければなりません。 例:
IsMouseOver=true;IsPressed=false
トリガの値を設定は、 オブジェクト インスペクタで最も簡単に行えます。
トリガ | 説明 |
IsDragOver | コントロールがドラッグされている(マウス ボタンがクリックされ、かつ押されたままになっている)際に、効果を発生させます。 |
IsFocused | コントロール上にフォーカスがある際に、効果を発生させます。 |
IsMouseOver | マウスがコントロールの上を通過した際に、効果を発生させます(HitTest が True に設定されている必要があります)。 |
IsVisible | コントロールが画面上に表示されている際に、効果を発生させます。 |
その他の組み込みトリガには、以下のものがあります。
・IsActive(TCustomForm)
・IsChecked (TMenuItem)
・IsOpen (TEffect)
・IsPressed (TCustomButton)
・IsSelected(MenuItem、TTabItem、TListBoxItem、TTreeViewItem)
効果トリガに関するさらなる情報については、「FireMonkey の画像効果」の「効果のトリガ」を参照してください。 |
|
それでは少し試してみます。
フォーム上にイメージコンポーネント3つとボタンを配置します。
下図では、100×100ドットのBMPファイル(Image1)、GIFファイル(Image2)、JPEGファイル(Image3)=Windows7 標準のサンプルピクチャの「アジサイ.jpg」を指定しています。
このイメージに対して効果を掛けるようにします。
本コンポーネントを配置し、構造ビューでドラッグして、上記で配置したイメージの子になるようにします。
画像合成用の透過PNGファイルを2つ用意します。
左側が 50×50ピクセルのPNG画像で、右側が200×200ピクセルのPNG画像です。白色部分が透過指定となっています。まずは、左側の画像を合成させてみます。
次に、右側の画像を合成させてみます。
合成画像は、元画像の大きさに合わせて自動的にストレッチされるようですね。
合成画像が透過情報を持たない場合には、元画像が合成画像に差し替えられる状態になるようです。
|
|
バッチファイル
BASIC
C言語のお勉強
拡張子な話
DOSプログラム
Delphi
>Delphi入門編
>Delphi2010
>DelphiXE3
▲2013/12/04
2013/12/04
▼2013/12/04
シェアウェア
Script!World
データベース
|