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 |
---|
After |
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.
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 |