Megosztás a következőn keresztül:


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
a képet az effektus előtt.
Után
a képet az átalakítás 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ő:

folyamat képletét.

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].

különálló átviteli függvény képpontintenzitási gráfját.

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

ID2D1Effect