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
- propriétés Effect
- modes Alpha
- Configuration requise
- rubriques connexes
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 |
---|
![]() |
Après |
![]() |
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.
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 |