Udostępnij za pośrednictwem


Luminance do efektu alfa

Użyj luminacji do efektu alfa, aby ustawić kanał alfa na lumincję obrazu i ustawić kanały kolorów na 0. Możesz użyć danych wyjściowych tego efektu, aby utworzyć półprzezroczystą nakładkę na podstawie jasności obrazu wejściowego. Możesz też użyć go do utworzenia maski obrazu.

Nuta

Ten efekt nie ma właściwości.

 

Identyfikator CLSID dla tego efektu jest CLSID_D2D1LuminanceToAlpha.

Przykładowy obraz

W tym przykładzie pokazano dane wyjściowe lumincji do efektu alfa złożonego na białej powierzchni, aby pokazać nieprzezroczystość.

Przed
obraz przed efektem.
Po
obraz po przekształceniu.

 

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();

Ten efekt ustawia kanał alfa danych wyjściowych na lumincję obrazu wejściowego przy użyciu tej macierzy kolorów.

macierzy kolorów efekt jest używany do ustawiania kanału alfa.

Ten efekt korzysta z obrazów alfa z premultiplied i generuje je. Efekt nie będzie działać na prostych obrazach alfa, chyba że są w pełni nieprzezroczyste.

Nuta

Ponieważ obrazy są przechowywane w formacie kompensowanym gamma, przed obliczeniu luminacji obrazu należy najpierw wykonać odwrotną korektę gamma, aby uzyskać prawdziwe wartości kolorów dla obrazu. Ponieważ obrazy są zwykle przechowywane na 2.2 gamma, można użyć efektu transferu Gamma z wykładnikiem (1/2.2), a następnie użyć danych wyjściowych tego efektu.

 

Wymagania

Wymaganie Wartość
Minimalny obsługiwany klient Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows]
Minimalny obsługiwany serwer Windows 8 i aktualizacja platformy dla systemu Windows 7 [aplikacje klasyczne | Aplikacje ze Sklepu Windows]
Nagłówek d2d1effects.h
Biblioteka d2d1.lib, dxguid.lib

 

Mapa bitowa wyjściowa

Dane wyjściowe mają taki sam rozmiar jak obraz wejściowy.

ID2D1Effect