明るさの効果
明るさ効果を使用して、画像の明るさを制御します。
この効果の CLSID はCLSID_D2D1Brightness。
画像の例
変更前 |
---|
クリック後 |
ComPtr<ID2D1Effect> brightnessEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Brightness, &brightnessEffect);
brightnessEffect->SetValue(D2D1_BRIGHTNESS_PROP_BLACK_POINT, D2D1::Vector2F(0.0f, 0.2f));
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(brightnessEffect.Get());
m_d2dContext->EndDraw();
Effect プロパティ
プロパティの表示名 | 型と既定値 | 説明 |
---|---|---|
WhitePoint D2D1_BRIGHTNESS_PROP_WHITE_POINT |
D2D1_VECTOR_2F {1.0f, 1.0f} |
明るさ伝達曲線の上部。 白い点は、画像の明るい部分の外観を調整します。 このプロパティは、x 値と y 値の両方に対して、その順序で使用されます。 このプロパティの各値は、0 ~ 1 の範囲です。 |
BlackPoint D2D1_BRIGHTNESS_PROP_BLACK_POINT |
D2D1_VECTOR_2F {0.0f, 0.0f} |
明るさ伝達曲線の下部。 黒い点は、画像の暗い部分の外観を調整します。 このプロパティは、x 値と y 値の両方に対して、その順序で使用されます。 このプロパティの各値は、0 ~ 1 の範囲です。 |
この効果は、指定された白と黒のポイントを使用して、ビットマップの調整に使用される転送関数を生成します。 次の数式では、伝達関数について説明します。 入力強度は 0 から 1 の間で定義されます。
効果アルゴリズムは、伝達関数を作成する数式を実装します。 この関数を使用して、画像のピクセルを調整します。 黒い点と白い点の x と y の値は、変換を形成するために接続されている 2 つの次元の座標です。 最終的な出力式の各部分:
次の数式を使用して、画像データを線形空間から非線形空間に変換します。
次の値に従ってイメージを調整します。
input は、0 ~ 1 の入力画像ピクセル強度値です。
*ホワイト Pt. (x, y)*より明るいピクセル強度の変換曲線の位置。
黒 Pt. (x, y) は、淡色ピクセル強度の変換曲線の位置です。
次の式を使用して、画像データを線形空間に変換します:
最後の出力式とコンポーネント部分を次に示します。
出力ビットマップ
出力ビットマップ サイズは、入力ビットマップ サイズと同じです。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ] |
サポートされている最小のサーバー | Windows 7 のWindows 8とプラットフォーム更新プログラム [デスクトップ アプリ |Windows ストア アプリ] |
ヘッダー | d2d1effects.h |
ライブラリ | d2d1.lib、dxguid.lib |