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 de 5 x 5 qui contient les coordonnées de l’espace RVBAW. Plusieurs méthodes de la classe ImageAttributes ajustent les couleurs d’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 qui est toute une 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 recolorie :
Initialisez un objet ColorMatrix.
Créez un objet ImageAttributes et transmettez l’objet ColorMatrix à la méthode SetColorMatrix de l’objet ImageAttributes.
Transmettez l’objet ImageAttributes à la méthode DrawImage d’un objet Graphics.
L’exemple précédent est conçu pour être utilisé avec Windows Forms et nécessite PaintEventArgse
, qui est un paramètre du gestionnaire d’événements Paint
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é comme rouge, vert, bleu, alpha et w, où w est toujours 1.
Par exemple, supposons que vous voulez commencer par la couleur (0.2, 0.0, 0.4, 1.0) et appliquer les transformations suivantes :
Double du composant rouge
Ajouter 0.2 aux composants rouges, verts et bleus
La multiplication de matrices suivante effectue la paire de transformations dans l’ordre indiqué.
Les éléments d’une matrice de couleur sont indexés (de base zéro) par ligne, puis colonne. Par exemple, l’entrée dans la cinquième ligne et la troisième colonne de matrice M est indiquée par M[4][2].
La matrice d’identité 5×5 (illustrée dans l’illustration suivante) comporte 1 sur la diagonale et les 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 de 5 x 5 qui contient les coordonnées de l’espace RVBAW. Plusieurs méthodes de la classe ImageAttributes ajustent les couleurs d’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 à l’aide des éléments de la matrice spécifiée |
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 cette ColorMatrix. |
Matrix01 |
Obtient ou définit l’élément à la ligne 0 (zéro) et la première colonne de cette ColorMatrix. |
Matrix02 |
Obtient ou définit l’élément à la ligne 0 (zéro) et la deuxième colonne de cette ColorMatrix. |
Matrix03 |
Obtient ou définit l’élément à la ligne 0 (zéro) et à la troisième colonne de cette 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 cette ColorMatrix. |
Matrix10 |
Obtient ou définit l’élément à la première ligne et 0 (zéro) colonne de cette ColorMatrix. |
Matrix11 |
Obtient ou définit l’élément à la première ligne et à la première colonne de cette ColorMatrix. |
Matrix12 |
Obtient ou définit l’élément à la première ligne et à la deuxième colonne de cette ColorMatrix. |
Matrix13 |
Obtient ou définit l’élément à la première ligne et à la troisième colonne de cette ColorMatrix. Représente le composant alpha. |
Matrix14 |
Obtient ou définit l’élément à la première ligne et à la quatrième colonne de cette ColorMatrix. |
Matrix20 |
Obtient ou définit l’élément à la deuxième ligne et 0 (zéro) colonne de cette ColorMatrix. |
Matrix21 |
Obtient ou définit l’élément à la deuxième ligne et à la première colonne de cette ColorMatrix. |
Matrix22 |
Obtient ou définit l’élément à la deuxième ligne et à la deuxième colonne de cette ColorMatrix. |
Matrix23 |
Obtient ou définit l’élément à la deuxième ligne et à la troisième colonne de cette ColorMatrix. |
Matrix24 |
Obtient ou définit l’élément à la deuxième ligne et à la quatrième colonne de cette ColorMatrix. |
Matrix30 |
Obtient ou définit l’élément à la troisième ligne et 0 (zéro) colonne de cette ColorMatrix. |
Matrix31 |
Obtient ou définit l’élément à la troisième ligne et à la première colonne de cette ColorMatrix. |
Matrix32 |
Obtient ou définit l’élément à la troisième ligne et à la deuxième colonne de cette ColorMatrix. |
Matrix33 |
Obtient ou définit l’élément à la troisième ligne et à la troisième colonne de cette ColorMatrix. Représente le composant alpha. |
Matrix34 |
Obtient ou définit l’élément à la troisième ligne et à la quatrième colonne de cette ColorMatrix. |
Matrix40 |
Obtient ou définit l’élément à la quatrième ligne et 0 (zéro) colonne de cette ColorMatrix. |
Matrix41 |
Obtient ou définit l’élément à la quatrième ligne et à la première colonne de cette ColorMatrix. |
Matrix42 |
Obtient ou définit l’élément à la quatrième ligne et à la deuxième colonne de cette ColorMatrix. |
Matrix43 |
Obtient ou définit l’élément à la quatrième ligne et à la troisième colonne de cette ColorMatrix. Représente le composant alpha. |
Matrix44 |
Obtient ou définit l’élément à la quatrième ligne et à la quatrième colonne de cette ColorMatrix. |
Méthodes
Equals(Object) |
Détermine si l’objet spécifié est égal à l’objet actuel. (Hérité de Object) |
GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |