Gammaátviteli effektus
A gammaátviteli effektussal leképezheti egy kép színintenzitását az egyes csatornákhoz megadott amplitúdó, kitevő és eltolás használatával létrehozott gammafüggvény használatával.
Az effektus CLSID azonosítója CLSID_D2D1GammaTransfer. Az effektus használatához adja hozzá a dxguid.lib elemet a linker függőségeihez.
Példakép
Előtt |
---|
![]() |
Után |
![]() |
ComPtr<ID2D1Effect> gammaTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1GammaTransfer, &gammaTransferEffect);
gammaTransferEffect->SetInput(0, bitmap);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_RED_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT, 0.25f);
gammaTransferEffect->SetValue(D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT, 0.25f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(gammaTransferEffect.Get());
m_d2dContext->EndDraw();
Ez az effektus egy gamma-átviteli függvényt alkalmaz az itt szereplő egyenlet alapján.
A bemeneti képpont intenzitása C, a kimeneti képpont intenzitása pedig C". C' = Amplitúdó * CKitevő + Eltolás
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.
Effektus tulajdonságai
Jegyzet
A gammaátviteli tulajdonságok összes csatornája esetében:
- Az amplitúdó értéke nincs határban, és egység nélküli.
- A kitevő értéke nincs határolva, és egység nélküli.
- Az eltolás értéke nincs határolva, és egység nélküli.
Név és index számbavételének megjelenítése | Leírás |
---|---|
RedAmplitude D2D1_GAMMATRANSFER_PROP_RED_AMPLITUDE |
A vörös csatorna gammaátviteli függvényének amplitúdója. A típus FLOAT. Az alapértelmezett érték 1,0f. |
RedExponent D2D1_GAMMATRANSFER_PROP_RED_EXPONENT |
A red csatorna gammaátviteli függvényének kitevője. A típus FLOAT. Az alapértelmezett érték 1,0f. |
RedOffset D2D1_GAMMATRANSFER_PROP_RED_OFFSET |
A vörös csatorna gammaátviteli függvényének eltolása. A típus FLOAT. Az alapértelmezett érték 0,0f. |
RedDisable D2D1_GAMMATRANSFER_PROP_RED_DISABLE |
Ha IGAZ értékre állítja, az nem alkalmazza az átviteli függvényt a Vörös csatornára. A rendszer identitásátviteli függvényt használ. Ha HAMIS értékre állítja, akkor a gamma-átviteli függvényt alkalmazza a Vörös csatornára. A típus BOOL. Az alapértelmezett érték HAMIS. |
GreenAmplitude D2D1_GAMMATRANSFER_PROP_GREEN_AMPLITUDE |
A zöld csatorna gammaátviteli függvényének amplitúdója. A típus FLOAT. Az alapértelmezett érték 1,0f. |
GreenExponent D2D1_GAMMATRANSFER_PROP_GREEN_EXPONENT |
A zöld csatorna gammaátviteli függvényének kitevője. A típus FLOAT. Az alapértelmezett érték 1,0f. |
GreenOffset D2D1_GAMMATRANSFER_PROP_GREEN_OFFSET |
A zöld csatorna gammaátviteli függvényének eltolása. A típus FLOAT. Az alapértelmezett érték 0,0f. |
GreenDisable D2D1_GAMMATRANSFER_PROP_GREEN_DISABLE |
Ha IGAZ értékre állítja, az nem alkalmazza az átviteli függvényt a Zöld csatornára. A rendszer identitásátviteli függvényt használ. Ha HAMIS értékre állítja, akkor a gamma-átviteli függvényt alkalmazza a Zöld csatornára. A típus BOOL. Az alapértelmezett érték HAMIS. |
BlueAmplitude D2D1_GAMMATRANSFER_PROP_BLUE_AMPLITUDE |
A Kék csatorna gammaátviteli függvényének amplitúdója. A típus FLOAT. Az alapértelmezett érték 1,0f. |
BlueExponent D2D1_GAMMATRANSFER_PROP_BLUE_EXPONENT |
A Kék csatorna gammaátviteli függvényének kitevője. A típus FLOAT. Az alapértelmezett érték 1,0f. |
BlueOffset D2D1_GAMMATRANSFER_PROP_BLUE_OFFSET |
A kék csatorna gammaátviteli függvényének eltolása. A típus FLOAT. Az alapértelmezett érték 0,0f. |
BlueDisable D2D1_GAMMATRANSFER_PROP_BLUE_DISABLE |
Ha IGAZ értékre állítja, az nem alkalmazza az átviteli függvényt a Kék csatornára. A rendszer identitásátviteli függvényt használ. Ha ezt HAMIS értékre állítja, akkor a gammaátviteli függvényt alkalmazza a Kék csatornára. A típus BOOL. Az alapértelmezett érték HAMIS. |
AlphaAmplitude D2D1_GAMMATRANSFER_PROP_ALPHA_AMPLITUDE |
Az alfa csatorna gammaátviteli függvényének amplitúdója. A típus FLOAT. Az alapértelmezett érték 1,0f. |
AlphaExponent D2D1_GAMMATRANSFER_PROP_ALPHA_EXPONENT |
Az alfa csatorna gammaátviteli függvényének kitevője. A típus FLOAT. Az alapértelmezett érték 1,0f. |
AlphaOffset D2D1_GAMMATRANSFER_PROP_ALPHA_OFFSET |
Az alfa csatorna gammaátviteli függvényének eltolása. A típus FLOAT. Az alapértelmezett érték 0,0f. |
AlphaDisable D2D1_GAMMATRANSFER_PROP_ALPHA_DISABLE |
Ha igaz értékre állítja, az nem alkalmazza az átviteli függvényt az alfa csatornára. A rendszer identitásátviteli függvényt használ. Ha HAMIS értékre állítja, akkor a gamma-átviteli függvényt alkalmazza az alfa csatornára. A típus BOOL. Az alapértelmezett érték HAMIS. |
ClampOutput D2D1_GAMMATRANSFER_PROP_CLAMP_OUTPUT |
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. A típus BOOL. Az alapértelmezett érték HAMIS. |
Kimeneti bitkép
A kimeneti bitkép mérete megegyezik a bemeneti bitkép méretével.
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 |