線形転送効果
線形転送効果を使用して、各チャネルに指定した値のリストから作成された線形関数を使用して、画像の色の強度をマップします。
この効果の 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 インターセプトです。
この効果は、直線的で事前に乗算されたアルファ画像に対して機能します。 効果は、事前に乗算されたアルファ ビットマップを出力します。
効果のプロパティ
注意
線形転送プロパティのすべてのチャネルの場合:
- Y インターセプトは境界付けされず、ユニットレスです。
- 勾配は境界なしで、単位なしです。
表示名とインデックス列挙 | 型と既定値 | 説明 |
---|---|---|
RedYIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
FLOAT 0.0f |
Red チャネルの線形関数の Y インターセプト。 |
RedSlope D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
FLOAT 1.0f |
赤チャネルの線形関数の傾き。 |
RedDisable D2D1_LINEARTRANSFER_PROP_RED_DISABLE |
BOOL FALSE |
これを TRUE に設定した場合、効果は赤チャネルに伝達関数を適用しません。 これを FALSE に設定すると、RedLinearTransfer 関数が Red チャネルに適用されます。 |
GreenYIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
FLOAT 0.0f |
緑チャネルの線形関数の Y インターセプト。 |
GreenSlope D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
FLOAT 1.0f |
緑チャネルの線形関数の傾き。 |
GreenDisable D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE |
BOOL FALSE |
これを TRUE に設定した場合、効果は伝達関数を Green チャネルに適用しません。 これを FALSE に設定すると、GreenLinearTransfer 関数が Green チャネルに適用されます。 |
BlueYIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
FLOAT 0.0f |
Blue チャネルの線形関数の Y インターセプト。 |
BlueSlope D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
FLOAT 1.0f |
青チャネルの線形関数の傾き。 |
BlueDisable D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE |
BOOL FALSE |
これを TRUE に設定した場合、効果は転送関数を Blue チャネルに適用しません。 これを FALSE に設定すると、BlueLinearTransfer 関数が Blue チャネルに適用されます。 |
AlphaYIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
FLOAT 0.0f |
アルファ チャネルの線形関数の Y インターセプト。 |
AlphaSlope D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
FLOAT 0.0f |
アルファ チャネルの線形関数の傾き。 |
AlphaDisable D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE |
BOOL FALSE |
これを TRUE に設定した場合、効果はアルファ チャネルに伝達関数を適用しません。 これを FALSE に設定すると、AlphaLinearTransfer 関数が Alpha チャネルに適用されます。 |
ClampOutput D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT |
BOOL FALSE |
効果がグラフの次の効果に値を渡す前に、効果が色の値を 0 から 1 の間にクランプするかどうか。 効果は、アルファ をプリ乗算する前に値をクランプします。 これを TRUE に設定すると、効果によって値がクランプされます。 これを FALSE に設定した場合、効果は色の値をクランプしませんが、他の効果と出力サーフェスの値が十分に高い精度でない場合は、値がクランプされる可能性があります。 |
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ] |
サポートされている最小のサーバー | Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ] |
Header | d2d1effects.h |
ライブラリ | d2d1.lib、dxguid.lib |