Udostępnij za pośrednictwem


Efekt transferu liniowego

Użyj efektu transferu liniowego, aby zamapować wzrost kolorów obrazu przy użyciu funkcji liniowej utworzonej na podstawie listy wartości podanych dla każdego kanału.

Identyfikator CLSID dla tego efektu jest CLSID_D2D1LinearTransfer.

Przykładowy obraz

Przed
obraz przed efektem.
Po
obraz po przekształceniu.
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();

Funkcja transferu liniowego jest tworzona na podstawie nachylenia i przecięcia dla każdego określonego kanału. Intensywność pikseli wyjściowych C jest obliczana przy użyciu równania: C' = mC + B, gdzie m jest nachyleniem funkcji liniowej, a B jest przecięciem Y funkcji liniowej.

Ten efekt działa na prostych i premultiplied obrazów alfa. Efekt generuje premultiplied mapy bitowe alfa.

Właściwości efektu

Nuta

Dla wszystkich kanałów właściwości transferu liniowego:

  • Przecięcie Y nie jest ograniczone i nie jest jednokrotne.
  • Nachylenie nie jest ograniczone i jest bezjednostki.
Nazwa wyświetlana i wyliczenie indeksu Typ i wartość domyślna Opis
RedyIntercept
D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT
SPŁAWIK
0.0f
Przecięcie Y funkcji liniowej dla kanału czerwonego.
RedSlope
D2D1_LINEARTRANSFER_PROP_RED_SLOPE
SPŁAWIK
1.0f
Nachylenie funkcji liniowej dla kanału czerwonego.
RedDisable
D2D1_LINEARTRANSFER_PROP_RED_DISABLE
BOOL
FAŁSZYWY
Jeśli ustawisz wartość TRUE, efekt nie zastosuje funkcji transferu do kanału Red. Jeśli ustawisz wartość FALSE, efekt zastosuje funkcję RedLinearTransfer do kanału Red.
GreenYIntercept
D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT
SPŁAWIK
0.0f
Przecięcie Y funkcji liniowej dla kanału Green.
GreenSlope
D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE
SPŁAWIK
1.0f
Nachylenie funkcji liniowej dla kanału Zielony.
GreenDisable
D2D1_LINEARTRANSFER_PROP_GREEN_DISABLE
BOOL
FAŁSZYWY
Jeśli ustawisz wartość TRUE, efekt nie zastosuje funkcji transferu do kanału Green. Jeśli ustawisz wartość FALSE, zastosuje funkcję GreenLinearTransfer do kanału Green.
BlueYIntercept
D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT
SPŁAWIK
0.0f
Przecięcie Y funkcji liniowej dla kanału Niebieskiego.
BlueSlope
D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE
SPŁAWIK
1.0f
Nachylenie funkcji liniowej dla kanału Niebieski.
BlueDisable
D2D1_LINEARTRANSFER_PROP_BLUE_DISABLE
BOOL
FAŁSZYWY
Jeśli ustawisz wartość TRUE, efekt nie zastosuje funkcji transferu do kanału Niebieski. Jeśli ustawisz wartość FALSE, zastosuje funkcję BlueLinearTransfer do kanału Blue.
AlphaYIntercept
D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT
SPŁAWIK
0.0f
Przecięcie Y funkcji liniowej dla kanału Alpha.
AlphaSlope
D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE
SPŁAWIK
0.0f
Nachylenie funkcji liniowej dla kanału Alfa.
AlphaDisable
D2D1_LINEARTRANSFER_PROP_ALPHA_DISABLE
BOOL
FAŁSZYWY
Jeśli ustawisz wartość TRUE, efekt nie zastosuje funkcji transferu do kanału Alpha. Jeśli ustawisz wartość FALSE, zastosuje funkcję AlphaLinearTransfer do kanału Alpha.
ClampOutput
D2D1_LINEARTRANSFER_PROP_CLAMP_OUTPUT
BOOL
FAŁSZYWY
Czy efekt zaciska wartości kolorów z zakresu od 0 do 1 przed przekazaniem wartości do następnego efektu na wykresie. Efekt zaciska wartości przed premultiplies alfa .
Jeśli ustawisz wartość TRUE, efekt będzie zaciskać wartości. Jeśli ustawisz wartość FALSE, efekt nie zacisnie wartości kolorów, ale inne efekty, a powierzchnia wyjściowa może zacisać wartości, jeśli nie są wystarczająco precyzyjne.

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

ID2D1Effect