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
- eigenschappen van effect
- Alfa-modi
- vereisten
- Verwante onderwerpen
Voorbeeldafbeelding
In het voorbeeld ziet u de invoer- en uitvoerafbeeldingen van het kleurenmatrix-effect dat de rode en blauwe kanalen verwisselt.
Voor |
---|
![]() |
Na |
![]() |
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.
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 |