算術複合効果
算術複合効果を使用して、入力画像のピクセルの加重合計を使用して 2 つの画像を結合します。
この効果の CLSID はCLSID_D2D1ArithmeticComposite。
式
ここでの数式は、この効果を計算するために使用されます。
出力rgba = C1 * Sourcergba * Destinationrgba + C2 * Sourcergba + C3 * Destinationrgba + C4
ここで、C1、C2、C3、C4 は、設定した係数です。
係数は、D2D1_VECTOR_4F内の値 (x、y、z、w) にマップされます。
- x = C1
- y = C2
- z = C3
- w = C4
画像の例
簡単な例として、ソースピクセルとターゲットピクセルを追加します。 この例では、2 つの丸い四角形が合成されています。 ソースの四角形は青で、変換先は赤です。
次の画像は、数式の係数がここで値に設定された算術複合効果の出力です。
- C1 = 0
- C2 = 1
- C3 = 1
- C4 = 0
その結果、ソースとターゲットのピクセル値が追加されます。 四角形が RGBA 値と重なっていない領域はすべて 0 です。 R と B の値の両方が最大であるため、四角形が重なり合う色はマゼンタです。
コードを含む別の例の画像を次に示します。
画像 1 の前 |
---|
効果の前に最初のソース イメージを ![]() |
画像 2 の前 |
効果の前に 2 番目の画像を ![]() |
後 |
変換後にイメージを ![]() |
ComPtr<ID2D1Effect> arithmeticCompositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ArithmeticComposite, &arithmeticCompositeEffect);
arithmeticCompositeEffect->SetInput(0, bitmap);
arithmeticCompositeEffect->SetInput(1, bitmapTwo);
arithmeticCompositeEffect->SetValue(D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS, D2D1::Vector4F(0.0f, 0.5f, 0.5f, 0.0f));
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(arithmeticCompositeEffect.Get());
m_d2dContext->EndDraw();
Effect プロパティ
表示名とインデックス列挙 | 形容 |
---|---|
係数 D2D1_ARITHMETICCOMPOSITE_PROP_COEFFICIENTS |
2 つの入力画像を合成するために使用される数式の係数。 係数は単位なしであり、無制限です。 型はD2D1_VECTOR_4F。 既定値は {1.0f、0.0f、0.0f、0.0f} です。 |
ClampOutput D2D1_ARITHMETICCOMPOSITE_PROP_CLAMP_OUTPUT |
効果は、グラフ内の次の効果に値を渡す前に、色の値を 0 から 1 にクランプします。 これを TRUE に設定すると、効果によって値がクランプされます。 これを FALSE に設定すると、効果は色の値をクランプしませんが、精度が十分に高くない場合は、他の効果と出力サーフェスによって値がクランプされる可能性があります。 型は BOOL です。 既定値は FALSE です。 |
出力ビットマップ
出力ビットマップは係数値によって異なります。 可能な出力ビットマップ サイズは次のとおりです。
- C1 が 0 以外の係数の場合、出力サイズは入力四角形の積集合になります。
- C2 が 0 以外の係数の場合、出力サイズはソース四角形のサイズです。
- C3 が 0 以外の係数のみの場合、出力サイズは Destination 四角形のサイズです。
- すべての係数が 0 の場合、出力サイズは空の四角形になります。
- 他のすべての係数値の場合、出力サイズは入力四角形の和集合です。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 用 Windows 8 およびプラットフォーム更新プログラム [デスクトップ アプリ |[Windows ストア アプリ] |
サポートされている最小サーバー | Windows 7 用 Windows 8 およびプラットフォーム更新プログラム [デスクトップ アプリ |[Windows ストア アプリ] |
ヘッダ | d2d1effects.h |
図書館 | d2d1.lib、dxguid.lib |