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í diskrétního přenosového efektu můžete namapovat intenzity barev obrázku pomocí funkce přenosu kroku vytvořené ze seznamu zadaných hodnot.
CLSID pro tento efekt je CLSID_D2D1DiscreteTransfer.
Příklad obrázku
Obrázek zde ukazuje vstup a výstup diskrétního přenosového efektu.
| Před |
|---|
|
| Po |
|
ComPtr<ID2D1Effect> discreteTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1DiscreteTransfer, &discreteTransferEffect);
discreteTransferEffect->SetInput(0, bitmap);
float table[3] = {0.0f, 0.5f, 1.0f};
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_RED_TABLE, table);
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE, table);
discreteTransferEffect->SetValue(D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE, table);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(discreteTransferEffect.Get());
m_d2dContext->EndDraw();
Přenosová funkce je založena 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ů se vypočítá pomocí rovnice:
Pro hodnotu C vyberte hodnotu k, která:
Výstup C lze vypočítat pomocí rovnice: C' = 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 diskrétní funkce přenosu vypadá takto, pokud jsou vstupy [0.25, 0.5, 0.75, 1.0].
Vlastnosti efektu
Poznámka
Hodnoty všech kanálů diskrétních vlastností přenosu 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_DISCRETETRANSFER_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_DISCRETETRANSFER_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, efekt použije funkci RedDiscreteTransfer na kanál Red. |
| GreenTable D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
Seznam hodnot, které definují funkci přenosu pro zelený kanál. |
| GreenDisable D2D1_DISCRETETRANSFER_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 NEPRAVDA, efekt použije funkci GreenDiscreteTransfer na zelený kanál. |
| Modrá tabulka D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
Seznam hodnot, které definují funkci přenosu pro modrý kanál. |
| BlueDisable D2D1_DISCRETETRANSFER_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 NEPRAVDA, efekt použije funkci BlueDiscreteTransfer na modrý kanál. |
| AlfaTable D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
Seznam hodnot, které definují funkci přenosu pro kanál Alpha. |
| AlphaDisable D2D1_DISCRETETRANSFER_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, efekt použije funkci AlphaDiscreteTransfer na kanál Alpha. |
| ClampOutput D2D1_DISCRETETRANSFER_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 |