Diszkrét átviteli effektus
A diszkrét átviteli effektussal leképezheti egy kép színintenzitását a megadott értékek listájából létrehozott lépésátviteli függvény használatával.
Az effektus CLSID azonosítója CLSID_D2D1DiscreteTransfer.
Példakép
Az alábbi képen a különálló átviteli effektus bemenete és kimenete látható.
Előtt |
---|
![]() |
Után |
![]() |
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();
Az átviteli függvény a következő bemenetek listáján alapul: V=(V0,V1,V2,V3,V? ,VN), ahol N az elemek száma – 1.
A bemeneti képpont intenzitása C-ként jelenik meg. A kimeneti képpont intenzitását (C) a következő egyenlettel számítjuk ki:
A C értéknél válasszon egy k értéket, amely a következő:
A C kimenet a következő egyenlettel számítható ki: C' = V?
Ez a hatás egyenes és előre meghatározott alfaképeken működik. Az effektus előre meghatározott alfa bitképeket ad ki.
Így néz ki a diszkrét átviteli függvény grafikonja, ha a bemenetek [0.25, 0.5, 0.75, 1.0]
.
Effektus tulajdonságai
Jegyzet
A különálló átviteli tulajdonságok összes csatornájának értéke egység nélküli, és legalább 0,0 és legfeljebb 1,0 értékkel rendelkezik.
Név és index számbavételének megjelenítése | Típus és alapértelmezett érték | Leírás |
---|---|---|
RedTable D2D1_DISCRETETRANSFER_PROP_RED_TABLE |
FLOAT[] {0.0f, 1.0f} |
A vörös csatorna átviteli függvényének meghatározásához használt értékek listája. |
RedDisable D2D1_DISCRETETRANSFER_PROP_RED_DISABLE |
BOOL TÉVES |
Ha IGAZ értékre állítja, az effektus nem alkalmazza az átviteli függvényt a Vörös csatornára. Ha HAMIS értékre állítja, az effektus a RedDiscreteTransfer függvényt alkalmazza a Vörös csatornára. |
GreenTable D2D1_DISCRETETRANSFER_PROP_GREEN_TABLE |
FLOAT[] {0.0f, 1.0f} |
A zöld csatorna átviteli függvényét meghatározó értékek listája. |
GreenDisable D2D1_DISCRETETRANSFER_PROP_GREEN_DISABLE |
BOOL TÉVES |
Ha IGAZ értékre állítja, az effektus nem alkalmazza az átviteli függvényt a Zöld csatornára. Ha HAMIS értékre állítja, az effektus a GreenDiscreteTransfer függvényt alkalmazza a Zöld csatornára. |
BlueTable D2D1_DISCRETETRANSFER_PROP_BLUE_TABLE |
FLOAT[] {0.0f, 1.0f} |
A Kék csatorna átviteli függvényét meghatározó értékek listája. |
BlueDisable D2D1_DISCRETETRANSFER_PROP_BLUE_DISABLE |
BOOL TÉVES |
Ha IGAZ értékre állítja, az effektus nem alkalmazza az átviteli függvényt a Kék csatornára. Ha HAMIS értékre állítja, az effektus a BlueDiscreteTransfer függvényt alkalmazza a Kék csatornára. |
AlphaTable D2D1_DISCRETETRANSFER_PROP_ALPHA_TABLE |
FLOAT[] {0.0f, 1.0f} |
Az Alfa csatorna átviteli függvényét meghatározó értékek listája. |
AlphaDisable D2D1_DISCRETETRANSFER_PROP_ALPHA_DISABLE |
BOOL TÉVES |
Ha IGAZ értékre állítja, az effektus nem alkalmazza az átviteli függvényt az Alfa csatornára. Ha HAMIS értékre állítja, az effektus az Alpha-csatornára alkalmazza az AlphaDiscreteTransfer függvényt. |
ClampOutput D2D1_DISCRETETRANSFER_PROP_CLAMP_OUTPUT |
BOOL TÉVES |
Azt jelzi, hogy az effektus 0 és 1 közé szorítja-e a színértékeket, mielőtt az effektus átadja az értékeket a gráf következő hatásának. Az effektus befogja az értékeket, mielőtt premultiplies az alfa. Ha igaz értékre állítja, az effektus az értékeket fogja szorítani. Ha HAMIS értékre állítja ezt be, az effektus nem fogja be a színértékeket, de más effektusok és a kimeneti felület is rögzítheti az értékeket, ha nem elég nagy pontosságúak. |
Követelmények
Követelmény | Érték |
---|---|
Minimálisan támogatott ügyfél | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
Minimálisan támogatott kiszolgáló | Windows 8 és Platform Update for Windows 7 [asztali alkalmazások | Windows Áruházbeli alkalmazások] |
Fejléc | d2d1effects.h |
Könyvtár | d2d1.lib, dxguid.lib |