アルファ効果に対する輝度
アルファ効果の輝度を使用して、アルファ チャネルをイメージの輝度に設定し、カラー チャネルを 0 に設定します。 この効果の出力を使用して、入力画像の明るさに基づいて半透明のオーバーレイを作成できます。 または、それを使用してイメージ マスクを作成することもできます。
手記
この効果にはプロパティがありません。
この効果の CLSID はCLSID_D2D1LuminanceToAlpha。
画像の例
この例では、不透明度を示すために白いサーフェス上で合成されたアルファ効果に対する輝度の出力を示します。
以前は |
---|
効果の前に画像を ![]() |
後 |
変換後にイメージを ![]() |
ComPtr<ID2D1Effect> luminanceToAlphaEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LuminanceToAlpha, &luminanceToAlphaEffect);
luminanceToAlphaEffect->SetInput(0, bitmap);
// LuminanceToAlpha result is composited on top of a white surface to show opacity.
ComPtr<ID2D1Effect> floodEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Flood, &floodEffect);
floodEffect->SetValue(D2D1_FLOOD_PROP_COLOR, D2D1::Vector4F(1.0f, 1.0f, 1.0f, 1.0f));
ComPtr<ID2D1Effect> compositeEffect;
m_d2dContext->CreateEffect(CLSID_D2D1Composite, &compositeEffect);
compositeEffect->SetInputEffect(0, floodEffect.Get());
compositeEffect->SetInputEffect(1, luminanceToAlphaEffect.Get());
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(compositeEffect.Get());
m_d2dContext->EndDraw();
この効果は、このカラー マトリックスを使用して、出力のアルファ チャネルを入力イメージの輝度に設定します。
効果がアルファ チャネルの設定に使用するカラー マトリックスを
この効果は、プリマルチプライ済みのアルファ 画像を消費して出力します。 効果は、完全に不透明でない限り、直線のアルファ画像では機能しません。
手記
画像はガンマ補正形式で格納されるため、画像の輝度を計算する前に、まず逆ガンマ補正を実行して画像の真の色値を取得する必要があります。 通常、画像は 2.2 ガンマで格納されるため、指数 (1/2.2) でガンマ転送効果を使用し、その効果の出力を使用できます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 7 用 Windows 8 およびプラットフォーム更新プログラム [デスクトップ アプリ |[Windows ストア アプリ] |
サポートされている最小サーバー | Windows 7 用 Windows 8 およびプラットフォーム更新プログラム [デスクトップ アプリ |[Windows ストア アプリ] |
ヘッダ | d2d1effects.h |
図書館 | d2d1.lib、dxguid.lib |
出力ビットマップ
出力は入力イメージと同じサイズです。
関連トピック