Udostępnij za pośrednictwem


Efekt transferu gamma

Użyj efektu transferu gamma, aby zamapować intensycję kolorów obrazu przy użyciu funkcji gamma utworzonej przy użyciu amplitudy, wykładnika i przesunięcia podanego dla każdego kanału.

Identyfikator CLSID dla tego efektu jest CLSID_D2D1GammaTransfer. Aby użyć tego efektu, dodaj plik dxguid.lib do zależności konsolidatora.

Przykładowy obraz

Przed
obraz przed efektem.
Po
obraz po przekształceniu.
ComPtr<ID2D1Effect> gammaTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GammaTransfer, &gammaTransferEffect);

gammaTransferEffect->SetInput(0, bitmap);

gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_RED_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT, 0.25f);

m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gammaTransferEffect.Get());
m_d2dContext->EndDraw();

Ten efekt stosuje funkcję transferu gamma na podstawie równania tutaj.

Intensywność pikseli wejściowych jest reprezentowana jako C i intensywność pikseli wyjściowych jako C". C' = Amplitude * CWykładnik + przesunięcie

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 gamma:

  • Wartość amplitudy nie jest ograniczona i jest bezjednostki.
  • Wartość wykładnicza nie jest ograniczona i jest bezjednostki.
  • Wartość przesunięcia nie jest ograniczona i jest bezjednostki.
Nazwa wyświetlana i wyliczenie indeksu Opis
RedAmplitude
D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE
Amplituda funkcji transferu gamma dla kanału czerwonego. Typ to FLOAT.
Wartość domyślna to 1.0f.
RedExponent
D2D1_GAMMATRANSFER_PROP_RED_EXPONENT
Wykładnik funkcji transferu gamma dla kanału Czerwonego. Typ to FLOAT.
Wartość domyślna to 1.0f.
RedOffset
D2D1_GAMMATRANSFER_PROP_RED_OFFSET
Przesunięcie funkcji transferu gamma dla kanału Czerwonego. Typ to FLOAT.
Wartość domyślna to 0,0f.
RedDisable
D2D1_GAMMATRANSFER_PROP_RED_DISABLE
Jeśli ustawisz wartość TRUE, nie zastosuje funkcji transferu do kanału Red. Jest używana funkcja transferu tożsamości. Jeśli ustawisz wartość FALSE, zastosuje funkcję transferu gamma do kanału czerwonego. Typ to BOOL.
Wartość domyślna to FALSE.
GreenAmplitude
D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE
Amplituda funkcji transferu gamma dla kanału Green. Typ to FLOAT.
Wartość domyślna to 1.0f.
GreenExponent
D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT
Wykładnik funkcji transferu gamma dla kanału Green. Typ to FLOAT.
Wartość domyślna to 1.0f.
GreenOffset
D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET
Przesunięcie funkcji transferu gamma dla kanału Green. Typ to FLOAT.
Wartość domyślna to 0,0f.
GreenDisable
D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE
Jeśli ustawisz wartość TRUE, nie zastosuje funkcji transferu do kanału Green. Jest używana funkcja transferu tożsamości. Jeśli ustawisz wartość FALSE, zastosuje funkcję transferu gamma do kanału Green. Typ to BOOL.
Wartość domyślna to FALSE.
BlueAmplitude
D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE
Amplituda funkcji transferu gamma dla kanału Niebieskiego. Typ to FLOAT.
Wartość domyślna to 1.0f.
BlueExponent
D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT
Wykładnik funkcji transferu gamma dla kanału Niebieskiego. Typ to FLOAT.
Wartość domyślna to 1.0f.
BlueOffset
D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET
Przesunięcie funkcji transferu gamma dla kanału Niebieskiego. Typ to FLOAT.
Wartość domyślna to 0,0f.
BlueDisable
D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE
Jeśli ustawisz wartość TRUE, nie zastosuje funkcji transferu do kanału Niebieski. Jest używana funkcja transferu tożsamości. Jeśli ustawisz wartość FALSE, zastosuje funkcję transferu gamma do kanału Niebieski. Typ to BOOL.
Wartość domyślna to FALSE.
AlfaAmplituj
D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE
Amplituda funkcji transferu gamma dla kanału alfa. Typ to FLOAT.
Wartość domyślna to 1.0f.
AlphaExponent
D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT
Wykładnik funkcji transferu gamma dla kanału alfa. Typ to FLOAT.
Wartość domyślna to 1.0f.
AlphaOffset
D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET
Przesunięcie funkcji transferu gamma dla kanału alfa. Typ to FLOAT.
Wartość domyślna to 0,0f.
AlphaDisable
D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE
Jeśli ustawisz wartość TRUE, nie zastosuje funkcji transferu do kanału alfa. Jest używana funkcja transferu tożsamości. Jeśli ustawisz wartość FALSE, zastosuje funkcję transferu gamma do kanału alfa. Typ to BOOL.
Wartość domyślna to FALSE.
ClampOutput
D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT
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.
Typ to BOOL.
Wartość domyślna to FALSE.

Mapa bitowa wyjściowa

Rozmiar mapy bitowej danych wyjściowych jest taki sam jak rozmiar mapy bitowej wejściowej.

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