次の方法で共有


輝度からアルファ効果

アルファ効果の輝度を使用してアルファ チャネルをイメージの輝度に設定し、カラー チャネルを 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 ストア アプリ]
Header d2d1effects.h
ライブラリ d2d1.lib、dxguid.lib

 

出力ビットマップ

出力は入力イメージと同じサイズです。

ID2D1Effect