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


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

egy példa mátrixdefiníciót.

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

ID2D1Effect