線形転送効果
線形転送効果を使用して、各チャネルに指定した値のリストから作成された線形関数を使用して、画像の色の強度をマップします。
この効果の CLSID はCLSID_D2D1LinearTransfer。
- 画像 の例
- Effect プロパティ
- 要件の
- 関連トピック
画像の例
以前は |
---|
効果の前に画像を ![]() |
後 |
変換後にイメージを ![]() |
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 |