Delen via


Kleurmatrixeffect

Gebruik het effect van de kleurmatrix om de RGBA-waarden van een bitmap te wijzigen.

U kunt dit effect gebruiken om het volgende te doen:

  • Een kleurkanaal uit een afbeelding verwijderen.
  • Verminder de kleur in een afbeelding.
  • Kleurenkanalen wisselen.
  • Kleurkanalen combineren.

Veel ingebouwde effecten zijn specialisaties van kleurmatrix die zijn geoptimaliseerd voor het beoogde gebruik van de effecten. Voorbeelden hiervan zijn verzadiging, tint draaien, sepia-en temperatuur en tint.

De CLSID voor dit effect is CLSID_D2D1ColorMatrix.

Voorbeeldafbeelding

In het voorbeeld ziet u de invoer- en uitvoerafbeeldingen van het kleurenmatrix-effect dat de rode en blauwe kanalen verwisselt.

Voor
de afbeelding vóór het effect.
Na
de afbeelding na de transformatie.
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();

Met dit effect worden de RGBA-waarden van de afbeelding vermenigvuldigd met een 5x4 kolommatrix, zoals in deze vergelijking wordt weergegeven.

een voorbeeldmatrixdefinitie.

Dit effect werkt op rechte en vooraf samengestelde alfa-afbeeldingen.

Effecteigenschappen

Weergavenaam en indexenumeratie Beschrijving
ColorMatrix
D2D1_COLORMATRIX_PROP_COLOR_MATRIX
Een matrix van 5x4 met floatwaarden. De elementen in de matrix zijn niet gebonden en zijn unitloos.
De standaardwaarde is de identiteitsmatrix.
Het type is D2D1_MATRIX_5X4_F.
De standaardwaarde is Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0).
AlphaMode
D2D1_COLORMATRIX_PROP_ALPHA_MODE
De alfamodus van de uitvoer. Zie Alpha-modi voor meer informatie.
Het type is D2D1_COLORMATRIX_ALPHA_MODE.
De standaardwaarde is D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED.
ClampOutput
D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT
Of de effectklemmen kleurwaarden tussen 0 en 1 voordat het effect de waarden doorgeeft aan het volgende effect in de grafiek. Het effect klemt de waarden voordat het premultiplt de alfa .
Als u dit instelt op TRUE, zal het effect de waarden vastzetten. Als u dit instelt op ONWAAR, zal het effect de kleurwaarden niet klemen, maar andere effecten en het uitvoeroppervlak de waarden mogelijk vastzetten als ze niet van hoge precisie zijn.
Het type is BOOL.
De standaardwaarde is FALSE.

Alfamodi

Naam Beschrijving
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED Het effect un-premultiplt de invoer, past de kleurmatrix toe en premultiplt de uitvoer.
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT Het effect past de kleurmatrix rechtstreeks toe op de invoer en maakt de uitvoer niet voorafmultiply.

Eisen

Eis Waarde
Minimaal ondersteunde client Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps]
Minimaal ondersteunde server Windows 8 en Platform Update voor Windows 7 [desktop-apps | Windows Store-apps]
Rubriek d2d1effects.h
Bibliotheek d2d1.lib, dxguid.lib

ID2D1Effect-