Lineáris átviteli effektus
A lineáris átviteli effektussal egy kép színintenzitását képezheti le az egyes csatornákhoz megadott értékek listájából létrehozott lineáris függvény használatával.
Az effektus CLSID azonosítója CLSID_D2D1LinearTransfer.
Példakép
Előtt |
---|
![]() |
Után |
![]() |
ComPtr<ID2D1Effect> linearTransferEffect;
m_d2dContext->CreateEffect(CLSID_D2D1LinearTransfer, &linearTransferEffect);
linearTransferEffect->SetInput(0, bitmap);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_RED_SLOPE, 2.5f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT, -1.0f);
linearTransferEffect->SetValue(D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE, 5.0f);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(linearTransferEffect.Get());
m_d2dContext->EndDraw();
A lineáris átviteli függvény a megadott csatornák meredeksége és y-metszete alapján jön létre. A C kimeneti képpont intenzitását a következő egyenlettel számítjuk ki: C' = mC + B, ahol m a lineáris függvény meredeksége, B pedig a lineáris függvény Y-metszete.
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 lineáris átviteli tulajdonságok összes csatornája esetében:
- Az Y-metszéspont nincs határban, és egység nélküli.
- A meredekség nem határolt, és egység nélküli.
Név és index számbavételének megjelenítése | Típus és alapértelmezett érték | Leírás |
---|---|---|
RedYIntercept D2D1_LINEARTRANSFER_PROP_RED_Y_INTERCEPT |
LEBEG 0,0f |
A vörös csatorna lineáris függvényének Y-metszete. |
RedSlope D2D1_LINEARTRANSFER_PROP_RED_SLOPE |
LEBEG 1.0f |
A vörös csatorna lineáris függvényének meredeksége. |
RedDisable D2D1_LINEARTRANSFER_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 RedLinearTransfer függvényt alkalmazza a Vörös csatornára. |
GreenYIntercept D2D1_LINEARTRANSFER_PROP_GREEN_Y_INTERCEPT |
LEBEG 0,0f |
A zöld csatorna lineáris függvényének Y-metszete. |
GreenSlope D2D1_LINEARTRANSFER_PROP_GREEN_SLOPE |
LEBEG 1.0f |
A zöld csatorna lineáris függvényének meredeksége. |
GreenDisable D2D1_LINEARTRANSFER_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, a GreenLinearTransfer függvényt alkalmazza a Zöld csatornára. |
BlueYIntercept D2D1_LINEARTRANSFER_PROP_BLUE_Y_INTERCEPT |
LEBEG 0,0f |
A Kék csatorna lineáris függvényének Y-metszete. |
BlueSlope D2D1_LINEARTRANSFER_PROP_BLUE_SLOPE |
LEBEG 1.0f |
A kék csatorna lineáris függvényének meredeksége. |
BlueDisable D2D1_LINEARTRANSFER_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, a BlueLinearTransfer függvényt alkalmazza a Kék csatornára. |
AlphaYIntercept D2D1_LINEARTRANSFER_PROP_ALPHA_Y_INTERCEPT |
LEBEG 0,0f |
Az Alfa-csatorna lineáris függvényének Y-metszete. |
AlphaSlope D2D1_LINEARTRANSFER_PROP_ALPHA_SLOPE |
LEBEG 0,0f |
Az Alfa-csatorna lineáris függvényének meredeksége. |
AlphaDisable D2D1_LINEARTRANSFER_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 ezt HAMIS értékre állítja, akkor az Alfa csatornára alkalmazza az AlphaLinearTransfer függvényt. |
ClampOutput D2D1_LINEARTRANSFER_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 |