複合効果
複合効果を使用して、2 つ以上の画像を結合します。 この効果には、13 種類の複合モードがあります。 T
複合効果は、2 つ以上の入力を受け入れます。 2 つのイメージを指定すると、destination は最初の入力 (インデックス 0) で、ソースは 2 番目の入力 (インデックス 1) です。 2 つ以上の入力を指定した場合、画像は最初の入力と 2 番目の入力で始まる合成されます。
この効果は、グラフィックス処理装置 (GPU) のブレンド ユニットを使用して、すべてのモードを実装します。
この効果の CLSID はCLSID_D2D1Composite。
画像の例
ここでの画像は、同じサイズの 2 つの角丸四角形が重なっていることを示しています。 青い四角形がソースであり、赤い四角形が変換先です。 イメージはソース オーバー モードと合成されました。
既定のモードを使用する別の例を次に示します。
画像 1 の前 |
---|
画像 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 の画像を持つ各モードの例を示しています。
サンプル コード
この効果の例については、 Direct2D 複合効果モードのサンプルをダウンロードします。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ] |
サポートされている最小のサーバー | Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ] |
ヘッダー | d2d1effects.h |
ライブラリ | d2d1.lib、dxguid.lib |