次の方法で共有


線形転送効果

線形転送効果を使用して、各チャネルに指定した値のリストから作成された線形関数を使用して、画像の色の強度をマップします。

この効果の CLSID はCLSID_D2D1LinearTransfer。

画像の例

以前は
効果の前に画像を します。
変換後にイメージを します。
ComPtr<ID2D1Effect> linearTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LinearTransfer, &linearTransferEffect);

linearTransferEffect->SetInput(0, bitmap);

linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_SLOPE, 2.5f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE, 5.0f);

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

線形伝達関数は、指定した各チャネルの傾きと y 切片に基づいて作成されます。 出力ピクセル強度 C は、C' = mC + B の式で計算されます。ここで、m は線形関数の傾き、B は線形関数の Y 切片です。

この効果は、直線的で事前に乗算されたアルファ画像に対して機能します。 この効果は、事前乗算されたアルファ ビットマップを出力します。

Effect プロパティ

手記

線形転送プロパティのすべてのチャネルの場合:

  • Y インターセプトは境界付けされておらず、ユニットレスです。
  • 傾きは境界がなく、単位がありません。
表示名とインデックス列挙 型と既定値 形容
RedYIntercept
D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT
浮く
0.0f
赤チャネルの線形関数の Y 切片。
RedSlope
D2D1_LINEARTRANSFER_PROP_RED_SLOPE
浮く
1.0f
赤チャネルの線形関数の傾き。
RedDisable
D2D1_LINEARTRANSFER_PROP_RED_DISABLE
BOOL

これを TRUE に設定すると、効果は転送関数を Red チャネルに適用しません。 これを FALSE に設定すると、RedLinearTransfer 関数が Red チャネルに適用されます。
GreenYIntercept
D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT
浮く
0.0f
緑チャネルの線形関数の Y インターセプト。
GreenSlope
D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE
浮く
1.0f
緑チャネルの線形関数の傾き。
GreenDisable
D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE
BOOL

これを TRUE に設定した場合、効果は伝達関数を Green チャネルに適用しません。 これを FALSE に設定すると、GreenLinearTransfer 関数が Green チャネルに適用されます。
BlueYIntercept
D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT
浮く
0.0f
Blue チャネルの線形関数の Y 切片。
BlueSlope
D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE
浮く
1.0f
青チャネルの線形関数の傾き。
BlueDisable
D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE
BOOL

これを TRUE に設定すると、効果は転送関数を Blue チャネルに適用しません。 これを FALSE に設定すると、BlueLinearTransfer 関数が Blue チャネルに適用されます。
AlphaYIntercept
D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT
浮く
0.0f
アルファ チャネルの線形関数の Y 切片。
AlphaSlope
D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE
浮く
0.0f
アルファ チャネルの線形関数の傾き。
AlphaDisable
D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE
BOOL

これを TRUE に設定すると、効果はアルファ チャネルに伝達関数を適用しません。 これを FALSE に設定すると、AlphaLinearTransfer 関数がアルファ チャネルに適用されます。
ClampOutput
D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT
BOOL

効果がグラフの次の効果に値を渡す前に、効果が色の値を 0 から 1 の間にクランプするかどうかを指定します。 効果は、アルファをプリ乗算する前に値をクランプします。
これを TRUE に設定すると、効果によって値がクランプされます。 これを FALSE に設定すると、効果は色の値をクランプしませんが、精度が十分に高くない場合は、他の効果と出力サーフェスによって値がクランプされる可能性があります。

必要条件

要件 価値
サポートされる最小クライアント Windows 7 用 Windows 8 およびプラットフォーム更新プログラム [デスクトップ アプリ |[Windows ストア アプリ]
サポートされている最小サーバー Windows 7 用 Windows 8 およびプラットフォーム更新プログラム [デスクトップ アプリ |[Windows ストア アプリ]
ヘッダ d2d1effects.h
図書館 d2d1.lib、dxguid.lib

ID2D1Effect