Färgmatriseffekt
Använd färgmatriseffekten för att ändra RGBA-värdena för en bitmapp.
Du kan använda den här effekten för att:
- Ta bort en färgkanal från en bild.
- Minska färgen i en bild.
- Växla färgkanaler.
- Kombinera färgkanaler.
Många inbyggda effekter är specialiseringar av färgmatriser som är optimerade för avsedd användning av effekterna. Exempel är mättnad, nyans rotera, sepiaoch temperatur och nyans.
CLSID för den här effekten är CLSID_D2D1ColorMatrix.
- Exempelbild
- egenskaper för effekt
- Alfalägen
- Krav
- Relaterade ämnen
Exempelbild
Exemplet här visar in- och utdatabilderna för färgmatriseffekten som växlar de röda och blå kanalerna.
Före |
---|
![]() |
Efter |
![]() |
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();
Den här effekten multiplicerar RGBA-värdena för bilden med en 5x4, kolumnmatris som visas i den här ekvationen.
Den här effekten fungerar på raka och förmultiplierade alfabilder.
Effektegenskaper
Visningsnamn och indexuppräkning | Beskrivning |
---|---|
ColorMatrix D2D1_COLORMATRIX_PROP_COLOR_MATRIX |
En 5x4-matris med flyttalvärden. Elementen i matrisen är inte avgränsade och är enhetslösa. Standardvärdet är identitetsmatrisen. Typen är D2D1_MATRIX_5X4_F. Standardvärdet är Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0). |
AlphaMode D2D1_COLORMATRIX_PROP_ALPHA_MODE |
Alfaläget för utdata. Mer information finns i Alfalägen. Typen är D2D1_COLORMATRIX_ALPHA_MODE. Standardvärdet är D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED. |
ClampOutput D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT |
Om effekten klämmer ihop färgvärden till mellan 0 och 1 innan effekten skickar värdena till nästa effekt i diagrammet. Effekten klämmer fast värdena innan den premultiplies alfa . Om du ställer in detta på TRUE klämmer effekten fast värdena. Om du ställer in detta på FALSE kommer effekten inte att klämma in färgvärdena, men andra effekter och utdataytan kan klämma fast värdena om de inte har tillräckligt hög precision. Typen är BOOL. Standardvärdet är FALSE. |
Alfalägen
Namn | Beskrivning |
---|---|
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED | Effekten avförmulterar indata, tillämpar färgmatrisen och förmulterar utdata. |
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT | Effekten tillämpar färgmatrisen direkt på indata och förmultiplerar inte utdata i förväg. |
Krav
Krav | Värde |
---|---|
Lägsta klient som stöds | Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar] |
Lägsta server som stöds | Windows 8 och Platform Update för Windows 7 [skrivbordsappar | Windows Store-appar] |
Rubrik | d2d1effects.h |
Bibliotek | d2d1.lib, dxguid.lib |