Efekt transferu tabeli
Użyj efektu transferu tabeli, aby zmapować wzrost kolorów obrazu przy użyciu funkcji transferu utworzonej na podstawie interpolacji listy podanych wartości.
Identyfikator CLSID dla tego efektu jest CLSID_D2D1TableTransfer.
- przykładowy obraz
- właściwości Efekt
- wymagania dotyczące
- Tematy pokrewne
Przykładowy obraz
Na poniższej ilustracji przedstawiono dane wejściowe i wyjściowe efektu transferu tabeli.
Przed |
---|
![]() |
Po |
![]() |
ComPtr<ID2D1Effect> tableTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1TableTransfer, &tableTransferEffect);
tableTransferEffect->SetInput(0, bitmap);
float table[2] = {0.75f, 1.0f};
tableTransferEffect->SetValue(D2D1_TABLETRANSFER_PROP_BLUE_TABLE, table);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(tableTransferEffect.Get());
m_d2dContext->EndDraw();
Funkcja transferu jest oparta na liście danych wejściowych V=(V0,V1,V2,V3, V? VN), gdzie N jest liczbą elementów — 1.
Intensywność pikseli wejściowych jest reprezentowana jako C. Intensywność pikseli wyjściowych, C można obliczyć przy użyciu równania.
Dla wartości C wybierz wartość k, tak aby: k/N = C < (k+1)/N
Dane wyjściowe C są obliczane przy użyciu następującego równania: C' = V? + (C - k/N) * N * (V??? 1? - V?)
Ten efekt działa na prostych i premultiplied obrazów alfa. Efekt generuje premultiplied mapy bitowe alfa.
Oto jak wygląda wykres funkcji transferu tabel, jeśli właściwość tabeli jest ustawiona na [0.0, 0.25, 1.0]
.
Właściwości efektu
Nuta
Wartości wszystkich kanałów właściwości transferu tabeli są bezjednostki i mają co najmniej 0,0 i maksymalnie 1,0.
Nazwa wyświetlana i wyliczenie indeksu | Typ i wartość domyślna | Opis |
---|---|---|
RedTable D2D1_TABLETRANSFER_PROP_RED_TABLE |
FLOAT[] {0.0f, 1.0f} |
Lista wartości używanych do definiowania funkcji transferu dla kanału czerwonego. |
RedDisable D2D1_TABLETRANSFER_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, zastosuje funkcję RedTableTransfer do kanału Czerwony. |
GreenTable D2D1_TABLETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
Lista wartości używanych do definiowania funkcji transferu dla kanału Green. |
GreenDisable D2D1_TABLETRANSFER_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ę GreenTableTransfer do kanału Green. |
BlueTable D2D1_TABLETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
Lista wartości używanych do definiowania funkcji transferu dla kanału Niebieskiego. |
BlueDisable D2D1_TABLETRANSFER_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ę BlueTableTransfer do kanału Blue. |
AlfaTable D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
Lista wartości używanych do definiowania funkcji transferu dla kanału Alpha. |
AlphaDisable D2D1_TABLETRANSFER_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ę AlphaTableTransfer do kanału Alpha. |
ClampOutput D2D1_TABLETRANSFER_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 |