個別の転送効果
指定した値の一覧から作成されたステップ転送関数を使用して、個別の転送効果を使用して画像の色の強度をマップします。
この効果の CLSID はCLSID_D2D1DiscreteTransfer。
- 画像 の例
- Effect プロパティ
- 要件の
- 関連トピック
画像の例
次の画像は、個別の転送効果の入力と出力を示しています。
以前は |
---|
効果の前に画像を ![]() |
後 |
変換後にイメージを ![]() |
ComPtr<ID2D1Effect> discreteTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DiscreteTransfer, &discreteTransferEffect);
discreteTransferEffect->SetInput(0, bitmap);
float table[3] = {0.0f, 0.5f, 1.0f};
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_RED_TABLE, table);
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE, table);
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE, table);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(discreteTransferEffect.Get());
m_d2dContext->EndDraw();
転送関数は、V=(V0,V1,V2,V3,V? ,VN) の入力リストに基づいています。N は要素の数 - 1 です。
入力ピクセルの強度は C として表されます。出力ピクセル強度 C は次の式で計算されます。
値 C の場合は、次のように値 k を選択します。
プロセスの数式を
出力 C は、C' = V の式を使用して計算できます。
この効果は、直線的で事前に乗算されたアルファ画像に対して機能します。 この効果は、事前乗算されたアルファ ビットマップを出力します。
入力が [0.25, 0.5, 0.75, 1.0]
場合の離散転送関数のグラフを次に示します。
離散伝達関数のピクセル強度グラフを
Effect プロパティ
手記
離散転送プロパティのすべてのチャネルの値は単位なしであり、最小 0.0 と最大 1.0 です。
表示名とインデックス列挙 | 型と既定値 | 形容 |
---|---|---|
RedTable D2D1_DISCRETETRANSFER_PROP_RED_TABLE |
FLOAT[] {0.0f、1.0f} |
Red チャネルの転送関数の定義に使用される値の一覧。 |
RedDisable D2D1_DISCRETETRANSFER_PROP_RED_DISABLE |
BOOL 偽 |
これを TRUE に設定すると、効果は転送関数を Red チャネルに適用しません。 これを FALSE に設定すると、RedDiscreteTransfer 関数が Red チャネルに適用されます。 |
GreenTable D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f、1.0f} |
Green チャネルの転送関数を定義する値の一覧。 |
GreenDisable D2D1_DISCRETETRANSFER_PROP_GREEN_DISABLE |
BOOL 偽 |
これを TRUE に設定した場合、効果は伝達関数を Green チャネルに適用しません。 これを FALSE に設定すると、効果によって GreenDiscreteTransfer 関数が Green チャネルに適用されます。 |
BlueTable D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f、1.0f} |
Blue チャネルの転送関数を定義する値の一覧。 |
BlueDisable D2D1_DISCRETETRANSFER_PROP_BLUE_DISABLE |
BOOL 偽 |
これを TRUE に設定すると、効果は転送関数を Blue チャネルに適用しません。 これを FALSE に設定すると、BlueDiscreteTransfer 関数が Blue チャネルに適用されます。 |
AlphaTable D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f、1.0f} |
アルファ チャネルの転送関数を定義する値の一覧。 |
AlphaDisable D2D1_DISCRETETRANSFER_PROP_ALPHA_DISABLE |
BOOL 偽 |
これを TRUE に設定すると、効果はアルファ チャネルに伝達関数を適用しません。 これを FALSE に設定すると、効果によって AlphaDiscreteTransfer 関数がアルファ チャネルに適用されます。 |
ClampOutput D2D1_DISCRETETRANSFER_PROP_CLAMP_OUTPUT |
BOOL 偽 |
効果がグラフの次の効果に値を渡す前に、効果が色の値を 0 から 1 の間にクランプするかどうかを指定します。 効果は、アルファを事前に乗算する前に値をクランプします。 これを TRUE に設定すると、効果によって値がクランプされます。 これを FALSE に設定すると、効果は色の値をクランプしませんが、精度が十分に高くない場合は、他の効果と出力サーフェスによって値がクランプされる可能性があります。 |
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 用 Windows 8 およびプラットフォーム更新プログラム [デスクトップ アプリ |[Windows ストア アプリ] |
サポートされている最小サーバー | Windows 7 用 Windows 8 およびプラットフォーム更新プログラム [デスクトップ アプリ |[Windows ストア アプリ] |
ヘッダ | d2d1effects.h |
図書館 | d2d1.lib、dxguid.lib |