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
- właściwości Efekt
- wymagania dotyczące
- Tematy pokrewne
Przykładowy obraz
Przed |
---|
![]() |
Po |
![]() |
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 |