次の方法で共有


複合効果

複合効果を使用して、2 つ以上の画像を結合します。 この効果には、13 種類の複合モードがあります。 T

複合効果は、2 つ以上の入力を受け入れます。 2 つのイメージを指定すると、destination は最初の入力 (インデックス 0) で、ソースは 2 番目の入力 (インデックス 1) です。 2 つ以上の入力を指定した場合、画像は最初の入力と 2 番目の入力で始まる合成されます。

この効果は、グラフィックス処理装置 (GPU) のブレンド ユニットを使用して、すべてのモードを実装します。

この効果の CLSID はCLSID_D2D1Composite。

画像の例

ここでの画像は、同じサイズの 2 つの角丸四角形が重なっていることを示しています。 青い四角形がソースであり、赤い四角形が変換先です。 イメージはソース オーバー モードと合成されました。

ソース オーバー モードを使用して重なるのと同じサイズの 2 つの丸い四角形を示す画像の例。

既定のモードを使用する別の例を次に示します。

画像 1 の前
効果の前の最初のソース イメージ。
画像 2 の前
効果の前の 2 番目の画像。
クリック後
変換後のイメージ。
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);

compositeEffect->SetInput(0, bitmap);
compositeEffect->SetInput(1, bitmapTwo);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();

効果のプロパティ

表示名とインデックス列挙 型と既定値 説明
モード
D2D1_COMPOSITE_PROP_MODE
D2D1_COMPOSITE_MODE
D2D1_COMPOSITE_MODE_SOURCE_OVER
効果に使用されるモード。

モードの種類

次の表に、この効果のモードを示します。 表に示されている数式では、次の要素が使用されます。

  • O = 出力
  • S = ソース
  • SA = ソース アルファ
  • D = Destination
  • DA = Destination Alpha
列挙 方程式 出力ビットマップ サイズ
D2D1_COMPOSITE_MODE_SOURCE_OVER O = S + (1 SA) * D ソースビットマップとコピー先ビットマップの和集合
D2D1_COMPOSITE_MODE_DESTINATION_OVER O = (1 DA) * S + D ソースビットマップとコピー先ビットマップの和集合
D2D1_COMPOSITE_MODE_SOURCE_IN O = DA * S ソース ビットマップとコピー先ビットマップの交差部分
D2D1_COMPOSITE_MODE_DESTINATION_IN O = SA * D ソース ビットマップとコピー先ビットマップの交差部分
D2D1_COMPOSITE_MODE_SOURCE_OUT O = (1 - DA) * S ソース ビットマップの領域
D2D1_COMPOSITE_MODE_DESTINATION_OUT O = (1 - SA) * D コピー先ビットマップの領域
D2D1_COMPOSITE_MODE_SOURCE_ATOP O = DA * S + (1 - SA) * D コピー先ビットマップの領域
D2D1_COMPOSITE_MODE_DESTINATION_ATOP O = (1 - DA) * S + SA * D ソース ビットマップの領域
D2D1_COMPOSITE_MODE_XOR O = (1 - DA) * S + (1 - SA) * D ソースビットマップとコピー先ビットマップの和集合
D2D1_COMPOSITE_MODE_PLUS O = S + D ソースビットマップとコピー先ビットマップの和集合
D2D1_COMPOSITE_MODE_SOURCE_COPY O = S ソース ビットマップの領域
D2D1_COMPOSITE_MODE_BOUNDED_SOURCE_COPY O = S (ソースが存在する場合のみ) ソースビットマップとコピー先ビットマップの和集合。 変換先が存在しない場所では上書きされません。
D2D1_COMPOSITE_MODE_MASK_INVERT O = (1 D) * S + (1 SA) * D ソースビットマップとコピー先ビットマップの和集合。アルファ値は変更されません。

次の図は、不透明度が 1.0 または 0.5 の画像を持つ各モードの例を示しています。

不透明度が 1.0 または 0.5 に設定されている各モードの画像例。

サンプル コード

この効果の例については、 Direct2D 複合効果モードのサンプルをダウンロードします

要件

要件
サポートされている最小のクライアント Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ]
サポートされている最小のサーバー Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ]
ヘッダー d2d1effects.h
ライブラリ d2d1.lib、dxguid.lib

ID2D1Effect