Partager via


Effet de matrice de couleur

Utilisez l’effet de matrice de couleur pour modifier les valeurs RGBA d’une bitmap.

Vous pouvez utiliser cet effet pour :

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

De nombreux effets intégrés sont des spécialisations de matrice de couleur optimisées pour l’utilisation prévue des effets. Par exemple, citons , teinte pivoter, sepiaet température et teinte.

Le CLSID pour cet effet est CLSID_D2D1ColorMatrix.

Exemple d’image

L’exemple montre ici les images d’entrée et de sortie de l’effet de matrice de couleur qui permute les canaux rouges et bleus.

Avant
l’image avant l’effet.
Après
l’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 principale de colonne 5x4, comme illustré dans cette équation.

un exemple de définition de matrice.

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

Propriétés d’effet

Nom complet 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 ne sont pas unitaires.
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, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 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 restreint les valeurs de couleur entre 0 et 1 avant que l’effet passe les valeurs à l’effet suivant dans le graphique. L’effet bloque les valeurs avant de prémultiplier l’alpha.
Si vous définissez cette valeur sur TRUE, l’effet bloque les valeurs. Si vous définissez cette valeur sur FALSE, l’effet ne serre pas les valeurs de couleur, mais d’autres effets et la surface de sortie peuvent limiter les valeurs si elles ne sont pas suffisamment précises.
Le type est BOOL.
La valeur par défaut est FALSE.

Modes alpha

Nom Description
D2D1_COLORMATRIX_ALPHA_MODE_PREMULTIPLIED L’effet annule la prémultipliation 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émultipation pas la sortie.

Exigences

Exigence Valeur
Client minimum pris en charge Windows 8 et Mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store]
Serveur minimum 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