次の方法で共有


複合効果

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

複合効果は、2 つ以上の入力を受け入れます。 2 つのイメージを指定した場合、宛先は最初の入力 (インデックス 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();

Effect プロパティ

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

モードの種類

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

  • O = 出力
  • S = ソース
  • SA = ソース アルファ
  • D = 宛先
  • DA = 宛先アルファ
列挙 方程式 出力ビットマップ サイズ
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