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