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

Na poniższej ilustracji przedstawiono dane wejściowe i wyjściowe efektu transferu tabeli.

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

wykres intensywności pikseli dla funkcji transferu tabeli.

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

ID2D1Effect