Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Pomocí efektu přenosu tabulky můžete namapovat intenzity barev obrázku pomocí funkce přenosu vytvořené z interpolace seznamu zadaných hodnot.
CLSID pro tento efekt je CLSID_D2D1TableTransfer.
Příklad obrázku
Obrázek zde ukazuje vstup a výstup efektu přenosu tabulky.
| Před |
|---|
|
| 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();
Přenosová funkce je založená na seznamu vstupů V=(V0;V1;V2;V3; V? ,VN), kde N je počet prvků - 1.
Intenzita vstupních pixelů je reprezentována jako C. Intenzita výstupních pixelů je možné vypočítat pomocí rovnice.
Pro hodnotu C vyberte hodnotu k, která: k/N = C < (k+1)/N
Výstup jazyka C se vypočítá pomocí následující rovnice: C' = V? + (C - k/N) * N * (V??? 1? - V?)
Tento efekt funguje na rovných a předsledovaných alfa obrázcích. Efekt vypíše předem nastavené alfa rastrové obrázky.
Graf funkce přenosu tabulky vypadá takto, pokud je vlastnost tabulky nastavená na [0.0, 0.25, 1.0].
Vlastnosti efektu
Poznámka
Hodnoty všech kanálů vlastností přenosu tabulky jsou bez jednotkové a mají minimálně 0,0 a maximálně 1,0.
| Zobrazovaný název a výčet indexu | Typ a výchozí hodnota | Popis |
|---|---|---|
| RedTable D2D1_TABLETRANSFER_PROP_RED_TABLE |
FLOAT[] {0.0f, 1.0f} |
Seznam hodnot použitých k definování funkce přenosu pro červený kanál. |
| RedDisable D2D1_TABLETRANSFER_PROP_RED_DISABLE |
BOOL FALEŠNÝ |
Pokud nastavíte hodnotu TRUE, efekt nepoužije funkci přenosu na červený kanál. Pokud nastavíte hodnotu NEPRAVDA, použije funkce RedTableTransfer na červený kanál. |
| GreenTable D2D1_TABLETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
Seznam hodnot použitých k definování funkce přenosu pro zelený kanál. |
| GreenDisable D2D1_TABLETRANSFER_PROP_GREEN_DISABLE |
BOOL FALEŠNÝ |
Pokud nastavíte hodnotu PRAVDA, efekt nepoužije funkci přenosu na zelený kanál. Pokud nastavíte hodnotu FALSE, použije funkce GreenTableTransfer na zelený kanál. |
| Modrá tabulka D2D1_TABLETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
Seznam hodnot použitých k definování funkce přenosu pro modrý kanál. |
| BlueDisable D2D1_TABLETRANSFER_PROP_BLUE_DISABLE |
BOOL FALEŠNÝ |
Pokud nastavíte hodnotu TRUE, efekt nepoužije funkci přenosu na modrý kanál. Pokud nastavíte hodnotu FALSE, použije funkce BlueTableTransfer na modrý kanál. |
| AlfaTable D2D1_TABLE_TRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
Seznam hodnot použitých k definování funkce přenosu pro kanál Alpha. |
| AlphaDisable D2D1_TABLETRANSFER_PROP_ALPHA_DISABLE |
BOOL FALEŠNÝ |
Pokud nastavíte hodnotu PRAVDA, efekt nepoužije funkci přenosu na kanál Alpha. Pokud nastavíte hodnotu NEPRAVDA, použije funkce AlphaTableTransfer na kanál Alpha. |
| ClampOutput D2D1_TABLETRANSFER_PROP_CLAMP_OUTPUT |
BOOL FALEŠNÝ |
Určuje, zda efekt upne hodnoty barev mezi 0 a 1 před tím, než efekt předá hodnoty dalšímu efektu v grafu. Efekt uchytí hodnoty před tím, než premultipluje alfa . Pokud nastavíte hodnotu TRUE, efekt uchytne hodnoty. Pokud nastavíte hodnotu NEPRAVDA, efekt neuchytne hodnoty barev, ale jiné efekty a výstupní povrch mohou upnout hodnoty, pokud nejsou dostatečně vysoké přesnosti. |
Požadavky
| Požadavek | Hodnota |
|---|---|
| Minimální podporovaný klient | Windows 8 a Aktualizace platformy pro Windows 7 [desktopové aplikace | Aplikace pro Windows Store] |
| Minimální podporovaný server | Windows 8 a Aktualizace platformy pro Windows 7 [desktopové aplikace | Aplikace pro Windows Store] |
| Záhlaví | d2d1effects.h |
| Knihovna | d2d1.lib, dxguid.lib |