Farbmatrixeffekt
Verwenden Sie den Farbmatrixeffekt, um die RGBA-Werte einer Bitmap zu ändern.
Sie können diesen Effekt verwenden, um:
- Entfernen eines Farbkanals aus einem Bild.
- Reduzieren sie die Farbe in einem Bild.
- Tauschen Sie Farbkanäle aus.
- Kombinieren sie Farbkanäle.
Viele integrierte Effekte sind Spezialisierungen der Farbmatrix, die für die beabsichtigte Verwendung der Effekte optimiert sind. Beispiele hierfür sind Sättigung, Farbtonrotierung, Sepiaund Temperatur und Tönung.
Die CLSID für diesen Effekt ist CLSID _ D2D1ColorMatrix.
Beispielbild
Das folgende Beispiel zeigt die Ein- und Ausgabebilder des Farbmatrixeffekts, der die roten und blauen Kanäle austauscht.
| Vorher |
|---|
![]() |
| Danach |
![]() |
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();
Dieser Effekt multipliziert die RGBA-Werte des Bilds mit einer 5x4-Spaltenhauptmatrix, wie in dieser Gleichung dargestellt.

Dieser Effekt funktioniert bei geraden und prämultiplizierten Alphabildern.
Effekteigenschaften
| Anzeigename und Indexenumeration | BESCHREIBUNG |
|---|---|
| Colormatrix D2D1 _ COLORMATRIX _ PROP _ COLOR _ MATRIX |
Eine 5x4-Matrix von float-Werten. Die Elemente in der Matrix sind nicht begrenzt und unitlos. Der Standardwert ist die Identitätsmatrix. Der Typ ist D2D1 _ MATRIX _ 5X4 _ F. Der Standardwert ist Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0). |
| AlphaMode D2D1 _ COLORMATRIX _ PROP _ ALPHA _ MODE |
Der Alphamodus der Ausgabe. Weitere Informationen finden Sie unter Alphamodi. Der Typ ist D2D1 _ COLORMATRIX _ ALPHA _ MODE. Der Standardwert ist D2D1 _ COLORMATRIX _ ALPHA MODE _ _ PREMULTIPLIED. |
| ClampOutput D2D1 _ COLORMATRIX _ _ PROP-KLAMMERAUSGABE _ |
Gibt an, ob der Effekt Farbwerte zwischen 0 und 1 zusammenbindet, bevor der Effekt die Werte an den nächsten Effekt im Diagramm übergibt. Der Effekt klammert die Werte, bevor er das Alpha vormultipliziert. Wenn Sie diese Einstellung auf TRUE festlegen, bindet der Effekt die Werte an. Wenn Sie diese Einstellung auf FALSE festlegen, bindet der Effekt die Farbwerte nicht, aber andere Effekte und die Ausgabeoberfläche können die Werte klammern, wenn sie nicht hoch genug präzise sind. Der Typ ist BOOL. Der Standardwert ist FALSE. |
Alphamodi
| Name | BESCHREIBUNG |
|---|---|
| D2D1 _ COLORMATRIX _ ALPHA _ MODE _ PREMULTIPLIED | Der Effekt entfällt die Prämultiplizierung der Eingabe, wendet die Farbmatrix an und multipliziert die Ausgabe. |
| D2D1 _ COLORMATRIX _ ALPHA _ MODE _ STRAIGHT | Der Effekt wendet die Farbmatrix direkt auf die Eingabe an und stellt die Ausgabe nicht vor. |
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) | Windows 8 und Plattformupdate für Windows 7 [ Desktop-Apps | Windows Store Apps] |
| Unterstützte Mindestversion (Server) | Windows 8 und Plattformupdate für Windows 7 [ Desktop-Apps | Windows Store Apps] |
| Header | d2d1effects.h |
| Bibliothek | d2d1.lib, dxguid.lib |

