Farbmatrixeffekt

Verwenden Sie den Farbmatrixeffekt, um die RGBA-Werte einer Bitmap zu ändern.

Sie können diesen Effekt für Folgendes verwenden:

  • Entfernen sie einen Farbkanal aus einem Bild.
  • Reduzieren Sie die Farbe in einem Bild.
  • Farbkanäle austauschen.
  • Kombinieren von Farbkanälen

Viele integrierte Effekte sind Spezialisierungen der Farbmatrix, die für die beabsichtigte Verwendung der Effekte optimiert sind. Beispiele hierfür sind Sättigung, Farbtondrehung, Sepia sowie Temperatur und Tönung.

Die CLSID für diesen Effekt ist CLSID_D2D1ColorMatrix.

Beispielbild

Das hier gezeigte Beispiel zeigt die Eingabe- und Ausgabebilder des Farbmatrixeffekts, der die roten und blauen Kanäle austauscht.

Vorher
das Bild vor dem Effekt.
Nach
das Bild nach der Transformation.
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 Formel dargestellt.

eine Beispielmatrixdefinition.

Dieser Effekt funktioniert bei geraden und vormultiplizierten Alphabildern.

Effekteigenschaften

Anzeigename und Indexenumeration BESCHREIBUNG
Colormatrix
D2D1_COLORMATRIX_PROP_COLOR_MATRIX
Eine 5x4-Matrix mit Gleitkommawerten. Die Elemente in der Matrix sind nicht begrenzt und einheitslos.
Der Standardwert ist die Identitätsmatrix.
Der Typ ist D2D1_MATRIX_5X4_F.
Der Standardwert ist Matrix5x4F(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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_CLAMP_OUTPUT
Gibt an, ob der Effekt Farbwerte zwischen 0 und 1 klemmt, bevor der Effekt die Werte an den nächsten Effekt im Diagramm übergibt. Der Effekt klammert die Werte ein, bevor er das Alpha vormultipliziert.
Wenn Sie dies auf TRUE festlegen, klammert der Effekt die Werte ein. Wenn Sie dies auf FALSE festlegen, klemmt der Effekt nicht die Farbwerte, sondern andere Effekte, und die Ausgabeoberfläche kann 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 hebt die Vormultiplikation der Eingabe auf, wendet die Farbmatrix an und multipliziert die Ausgabe vorab.
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT Der Effekt wendet die Farbmatrix direkt auf die Eingabe an und führt die Ausgabe nicht vorab aus.

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

ID2D1Effect