Effet de matrice de couleurs

Utilisez l’effet de matrice de couleurs pour modifier les valeurs RVBA d’une bitmap.

Vous pouvez utiliser cet effet pour :

  • Supprimez un canal de couleurs d’une image.
  • Réduire la couleur dans une image.
  • Permuter les canaux de couleur.
  • Combinez des canaux de couleurs.

De nombreux effets intégrés sont des spécialisations de matrice de couleurs qui sont optimisées pour l’utilisation prévue des effets. Les exemples incluent la saturation, la rotation de teinte, la sépia, la température et la teinte.

Le CLSID de cet effet est CLSID_D2D1ColorMatrix.

Exemple d’image

L’exemple ci-dessous montre les images d’entrée et de sortie de l’effet de matrice de couleurs qui échange les canaux rouge et bleu.

Avant
image avant l’effet.
After
image après la 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();

Cet effet multiplie les valeurs RVBA de l’image par une matrice de colonne majeure 5x4, comme indiqué dans cette équation.

exemple de définition de matrice.

Cet effet fonctionne sur les images alpha droites et prémultipliées.

Propriétés d’effet

Nom d’affichage et énumération d’index Description
Colormatrix
D2D1_COLORMATRIX_PROP_COLOR_MATRIX
Matrice 5x4 de valeurs float. Les éléments de la matrice ne sont pas limités et sont sans unité.
La valeur par défaut est la matrice d’identité.
Le type est D2D1_MATRIX_5X4_F.
La valeur par défaut est Matrix5x4F(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0).
AlphaMode
D2D1_COLORMATRIX_PROP_ALPHA_MODE
Mode alpha de la sortie. Pour plus d’informations, consultez Modes Alpha .
Le type est D2D1_COLORMATRIX_ALPHA_MODE.
La valeur par défaut est D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED.
ClampOutput
D2D1_COLORMATRIX_PROP_CLAMP_OUTPUT
Indique si l’effet fixe les valeurs de couleur entre 0 et 1 avant que l’effet ne passe les valeurs à l’effet suivant dans le graphique. L’effet fixe les valeurs avant de prémultiplier l’alpha .
Si vous définissez cette valeur sur TRUE, l’effet va serrer les valeurs. Si vous définissez cette valeur sur FALSE, l’effet ne serrera pas les valeurs de couleur, mais d’autres effets et la surface de sortie peuvent serrer les valeurs si elles ne sont pas suffisamment précises.
Le type est BOOL.
La valeur par défaut est FALSE.

Modes alpha

Name Description
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED L’effet annule la prémultiplication de l’entrée, applique la matrice de couleurs et prémultiplie la sortie.
D2D1_COLORMATRIX_ALPHA_MODE_STRAIGHT L’effet applique la matrice de couleurs directement à l’entrée et ne prémultipe pas la sortie.

Spécifications

Condition requise Valeur
Client minimal pris en charge Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store]
Serveur minimal pris en charge Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store]
En-tête d2d1effects.h
Bibliothèque d2d1.lib, dxguid.lib

ID2D1Effect