ColorMatrix Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit une matrice 5 x 5 qui contient les coordonnées de l'espace RGBAW. Plusieurs méthodes de la classe ImageAttributes permettent d'affiner les couleurs d'une image à l'aide d'une matrice de couleurs. Cette classe ne peut pas être héritée.
public ref class ColorMatrix sealed
public sealed class ColorMatrix
type ColorMatrix = class
Public NotInheritable Class ColorMatrix
- Héritage
-
ColorMatrix
Exemples
L’exemple suivant prend une image d’une seule couleur (0.2, 0.0, 0.4, 1.0) et applique la transformation décrite dans les paragraphes précédents.
L’illustration suivante montre l’image d’origine à gauche et l’image transformée à droite.
Le code de l’exemple suivant utilise les étapes suivantes pour effectuer la recoloration :
Initialiser un ColorMatrix objet.
Create un ImageAttributes objet et passez l’objet ColorMatrix à la SetColorMatrix méthode de l’objet ImageAttributes .
Passez l’objet ImageAttributes à la DrawImage méthode d’un Graphics objet.
L’exemple précédent est conçu pour être utilisé avec Windows Forms et nécessite PaintEventArgse
, qui est un paramètre du Paint gestionnaire d’événements
Image image = new Bitmap("InputColor.bmp");
ImageAttributes imageAttributes = new ImageAttributes();
int width = image.Width;
int height = image.Height;
float[][] colorMatrixElements = {
new float[] {2, 0, 0, 0, 0}, // red scaling factor of 2
new float[] {0, 1, 0, 0, 0}, // green scaling factor of 1
new float[] {0, 0, 1, 0, 0}, // blue scaling factor of 1
new float[] {0, 0, 0, 1, 0}, // alpha scaling factor of 1
new float[] {.2f, .2f, .2f, 0, 1}}; // three translations of 0.2
ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);
imageAttributes.SetColorMatrix(
colorMatrix,
ColorMatrixFlag.Default,
ColorAdjustType.Bitmap);
e.Graphics.DrawImage(image, 10, 10);
e.Graphics.DrawImage(
image,
new Rectangle(120, 10, width, height), // destination rectangle
0, 0, // upper-left corner of source rectangle
width, // width of source rectangle
height, // height of source rectangle
GraphicsUnit.Pixel,
imageAttributes);
Dim image As New Bitmap("InputColor.bmp")
Dim imageAttributes As New ImageAttributes()
Dim width As Integer = image.Width
Dim height As Integer = image.Height
' The following matrix consists of the following transformations:
' red scaling factor of 2
' green scaling factor of 1
' blue scaling factor of 1
' alpha scaling factor of 1
' three translations of 0.2
Dim colorMatrixElements As Single()() = { _
New Single() {2, 0, 0, 0, 0}, _
New Single() {0, 1, 0, 0, 0}, _
New Single() {0, 0, 1, 0, 0}, _
New Single() {0, 0, 0, 1, 0}, _
New Single() {0.2F, 0.2F, 0.2F, 0, 1}}
Dim colorMatrix As New ColorMatrix(colorMatrixElements)
imageAttributes.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap)
e.Graphics.DrawImage(image, 10, 10)
e.Graphics.DrawImage( _
image, _
New Rectangle(120, 10, width, height), _
0, _
0, _
width, _
height, _
GraphicsUnit.Pixel, _
imageAttributes)
Remarques
Les coefficients de matrice constituent une transformation linéaire de 5 x 5 utilisée pour transformer des valeurs homogènes ARGB. Par exemple, un vecteur ARGB est représenté en rouge, vert, bleu, alpha et w, où w est toujours 1.
Par exemple, supposons que vous souhaitiez commencer par la couleur (0.2, 0.0, 0.4, 1.0) et appliquer les transformations suivantes :
Doubler le composant rouge
Ajouter 0,2 aux composants rouge, vert et bleu
La multiplication de matrice suivante effectue la paire de transformations dans l’ordre indiqué.
Les éléments d’une matrice de couleurs sont indexés (base zéro) par ligne, puis colonne. Par exemple, l’entrée de la cinquième ligne et de la troisième colonne de la matrice M est notée par M[4][2].
La matrice d’identité 5×5 (illustrée dans l’illustration suivante) a 1 sur la diagonale et 0 partout ailleurs. Si vous multipliez un vecteur de couleur par la matrice d’identité, le vecteur de couleur ne change pas. Un moyen pratique de former la matrice d’une transformation de couleur consiste à commencer par la matrice d’identité et à apporter une petite modification qui produit la transformation souhaitée.
Pour une présentation plus détaillée des matrices et des transformations, consultez Systèmes de coordonnées et transformations.
Constructeurs
ColorMatrix() |
Initialise une nouvelle instance de la classe ColorMatrix. |
ColorMatrix(ReadOnlySpan<Single>) |
Définit une matrice 5 x 5 qui contient les coordonnées de l'espace RGBAW. Plusieurs méthodes de la classe ImageAttributes permettent d'affiner les couleurs d'une image à l'aide d'une matrice de couleurs. Cette classe ne peut pas être héritée. |
ColorMatrix(Single[][]) |
Initialise une nouvelle instance de la classe ColorMatrix avec les éléments contenus dans la matrice |
Propriétés
Item[Int32, Int32] |
Obtient ou définit l'élément à la ligne et la colonne spécifiées dans le ColorMatrix. |
Matrix00 |
Obtient ou définit l'élément à la ligne 0 (zéro) et la colonne 0 de ce ColorMatrix. |
Matrix01 |
Obtient ou définit l'élément à la ligne 0 (zéro) et la première colonne de ce ColorMatrix. |
Matrix02 |
Obtient ou définit l'élément à la ligne 0 (zéro) et la deuxième colonne de ce ColorMatrix. |
Matrix03 |
Obtient ou définit l'élément à la ligne 0 (zéro) et la troisième colonne de ce ColorMatrix. Représente le composant alpha. |
Matrix04 |
Obtient ou définit l'élément à la ligne 0 (zéro) et la quatrième colonne de ce ColorMatrix. |
Matrix10 |
Obtient ou définit l'élément à la première ligne et la colonne 0 (zéro) de ce ColorMatrix. |
Matrix11 |
Obtient ou définit l'élément à la première ligne et la première colonne de ce ColorMatrix. |
Matrix12 |
Obtient ou définit l'élément à la première ligne et la deuxième colonne de ce ColorMatrix. |
Matrix13 |
Obtient ou définit l'élément à la première ligne et la troisième colonne de ce ColorMatrix. Représente le composant alpha. |
Matrix14 |
Obtient ou définit l'élément à la première ligne et la quatrième colonne de ce ColorMatrix. |
Matrix20 |
Obtient ou définit l'élément à la deuxième ligne et la colonne 0 (zéro) de ce ColorMatrix. |
Matrix21 |
Obtient ou définit l'élément à la deuxième ligne et la première colonne de ce ColorMatrix. |
Matrix22 |
Obtient ou définit l'élément à la deuxième ligne et la deuxième colonne de ce ColorMatrix. |
Matrix23 |
Obtient ou définit l'élément à la deuxième ligne et la troisième colonne de ce ColorMatrix. |
Matrix24 |
Obtient ou définit l'élément à la deuxième ligne et la quatrième colonne de ce ColorMatrix. |
Matrix30 |
Obtient ou définit l'élément à la troisième ligne et la colonne 0 (zéro) de ce ColorMatrix. |
Matrix31 |
Obtient ou définit l'élément à la troisième ligne et la première colonne de ce ColorMatrix. |
Matrix32 |
Obtient ou définit l'élément à la troisième ligne et la deuxième colonne de ce ColorMatrix. |
Matrix33 |
Obtient ou définit l'élément à la troisième ligne et la troisième colonne de ce ColorMatrix. Représente le composant alpha. |
Matrix34 |
Obtient ou définit l'élément à la troisième ligne et la quatrième colonne de ce ColorMatrix. |
Matrix40 |
Obtient ou définit l'élément à la quatrième ligne et la colonne 0 (zéro) de ce ColorMatrix. |
Matrix41 |
Obtient ou définit l'élément à la quatrième ligne et la première colonne de ce ColorMatrix. |
Matrix42 |
Obtient ou définit l'élément à la quatrième ligne et la deuxième colonne de ce ColorMatrix. |
Matrix43 |
Obtient ou définit l'élément à la quatrième ligne et la troisième colonne de ce ColorMatrix. Représente le composant alpha. |
Matrix44 |
Obtient ou définit l'élément à la quatrième ligne et la quatrième colonne de ce ColorMatrix. |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient le Type de l'instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l'objet actuel. (Hérité de Object) |
S’applique à
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour