Színmátrix effektus
A színmátrix-effektussal módosíthatja egy bitkép RGBA-értékeit.
Ezt az effektust a következőre használhatja:
- Színcsatorna eltávolítása egy képről.
- Csökkentse a kép színét.
- Színcsatornák felcserélése.
- Színcsatornák egyesítése.
Számos beépített effektus a színmátrix olyan specializációja, amely az effektusok rendeltetésszerű használatára van optimalizálva. Ilyen például telítettségi, színárnyalat elforgatása, szépia, valamint hőmérséklet és színárnyalat.
Az effektus CLSID azonosítója CLSID_D2D1ColorMatrix.
Példakép
Az alábbi példa a piros és kék csatornákat felcserélő színmátrix-effektus bemeneti és kimeneti képeit mutatja be.
Előtt |
---|
![]() |
Után |
![]() |
ComPtr<ID2D1Effect> colorMatrixEffect;
m_d2dContext->CreateEffect(CLSID_D2D1ColorMatrix, &colorMatrixEffect);
colorMatrixEffect->SetInput(0, bitmap);
D2D1_MATRIX_5X4_F matrix = D2D1::Matrix5x4F(0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0);
colorMatrixEffect->SetValue(D2D1_COLORMATRIX_PROP_COLOR_MATRIX, matrix);
m_d2dContext->BeginDraw();
m_d2dContext->DrawImage(colorMatrixEffect.Get());
m_d2dContext->EndDraw();
Ez az effektus megszorozza a kép RGBA-értékeit egy 5x4 oszlopos fő mátrixsal, ahogyan az ebben az egyenletben látható.
Ez a hatás egyenes és előre meghatározott alfaképeken működik.
Effektus tulajdonságai
Név és index számbavételének megjelenítése | Leírás |
---|---|
ColorMatrix D2D1_COLORMATRIX_PROP_COLOR_MATRIX |
A lebegőpontos értékek 5x4 mátrixa. A mátrix elemei nincsenek határban, és egység nélküliek. Az alapértelmezett az identitásmátrix. A típus D2D1_MATRIX_5X4_F. Az alapértelmezett érték a Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0). |
AlphaMode D2D1_COLORMATRIX_PROP_ALPHA_MODE |
A kimenet alfamódja. További információért lásd Alfa módokat. A típus D2D1_COLORMATRIX_ALPHA_MODE. Az alapértelmezett érték a D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED. |
ClampOutput D2D1_COLORMATRIX_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. |
Alfa mód
Név | Leírás |
---|---|
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED | Az effektus feloldja a bemenetet, alkalmazza a színmátrixot, és premultipliesként adja meg a kimenetet. |
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT | Az effektus közvetlenül a bemenetre alkalmazza a színmátrixot, és nem adja meg előre a kimenetet. |
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 |