ImageAttributes.SetColorMatrix Méthode
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 la matrice d’ajustement des couleurs.
Surcharges
SetColorMatrix(ColorMatrix) |
Définit la matrice d’ajustement des couleurs pour la catégorie par défaut. |
SetColorMatrix(ColorMatrix, ColorMatrixFlag) |
Définit la matrice d’ajustement des couleurs pour la catégorie par défaut. |
SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType) |
Définit la matrice d’ajustement des couleurs pour une catégorie spécifiée. |
SetColorMatrix(ColorMatrix)
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
Définit la matrice d’ajustement des couleurs pour la catégorie par défaut.
public:
void SetColorMatrix(System::Drawing::Imaging::ColorMatrix ^ newColorMatrix);
public void SetColorMatrix (System.Drawing.Imaging.ColorMatrix newColorMatrix);
member this.SetColorMatrix : System.Drawing.Imaging.ColorMatrix -> unit
Public Sub SetColorMatrix (newColorMatrix As ColorMatrix)
Paramètres
- newColorMatrix
- ColorMatrix
Matrice d’ajustement des couleurs.
Exemples
L’exemple de code suivant est conçu pour être utilisé avec Windows Forms et nécessite PaintEventArgse
, qui est un paramètre du gestionnaire d’événements Paint. Le code effectue les actions suivantes :
Crée une image rectangle qui a toutes les valeurs de couleur définies sur 128, produisant un rectangle rempli d’une couleur gris moyen unie. Le code dessine ensuite cette image rectangle à l’écran.
Crée une ColorMatrix et définit son emplacement Matrix sur 1,75, ce qui met en évidence le composant rouge de l’image.
Crée un objet ImageAttributes et appelle la méthode SetColorMatrix.
Dessine l’image (un deuxième rectangle) à l’écran à l’aide du ColorMatrix défini simplement dans l’objet ImageAttributes.
Notez que le deuxième rectangle a la couleur rouge mise en évidence.
private:
void SetColorMatrixExample( PaintEventArgs^ e )
{
// Create a rectangle image with all colors set to 128 (medium
// gray).
Bitmap^ myBitmap = gcnew Bitmap( 50,50,PixelFormat::Format32bppArgb );
Graphics^ g = Graphics::FromImage( myBitmap );
g->FillRectangle( gcnew SolidBrush( Color::FromArgb( 255, 128, 128, 128 ) ), Rectangle(0,0,50,50) );
myBitmap->Save( "Rectangle1.jpg" );
// Open an Image file and draw it to the screen.
Image^ myImage = Image::FromFile( "Rectangle1.jpg" );
e->Graphics->DrawImage( myImage, 20, 20 );
// Initialize the color matrix.
ColorMatrix^ myColorMatrix = gcnew ColorMatrix;
// Red
myColorMatrix->Matrix00 = 1.75f;
// Green
myColorMatrix->Matrix11 = 1.00f;
// Blue
myColorMatrix->Matrix22 = 1.00f;
// alpha
myColorMatrix->Matrix33 = 1.00f;
// w
myColorMatrix->Matrix44 = 1.00f;
// Create an ImageAttributes object and set the color matrix.
ImageAttributes^ imageAttr = gcnew ImageAttributes;
imageAttr->SetColorMatrix( myColorMatrix );
// Draw the image using the color matrix.
Rectangle rect = Rectangle(100,20,200,200);
e->Graphics->DrawImage( myImage, rect, 0, 0, 200, 200, GraphicsUnit::Pixel, imageAttr );
}
private void SetColorMatrixExample(PaintEventArgs e)
{
// Create a rectangle image with all colors set to 128 (medium
// gray).
Bitmap myBitmap = new Bitmap(50, 50, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(myBitmap);
g.FillRectangle(new SolidBrush(Color.FromArgb(255, 128, 128, 128)),
new Rectangle(0, 0, 50, 50));
myBitmap.Save("Rectangle1.jpg");
// Open an Image file and draw it to the screen.
Image myImage = Image.FromFile("Rectangle1.jpg");
e.Graphics.DrawImage(myImage, 20, 20);
// Initialize the color matrix.
ColorMatrix myColorMatrix = new ColorMatrix();
// Red
myColorMatrix.Matrix00 = 1.75f;
// Green
myColorMatrix.Matrix11 = 1.00f;
// Blue
myColorMatrix.Matrix22 = 1.00f;
// alpha
myColorMatrix.Matrix33 = 1.00f;
// w
myColorMatrix.Matrix44 = 1.00f;
// Create an ImageAttributes object and set the color matrix.
ImageAttributes imageAttr = new ImageAttributes();
imageAttr.SetColorMatrix(myColorMatrix);
// Draw the image using the color matrix.
Rectangle rect = new Rectangle(100, 20, 200, 200);
e.Graphics.DrawImage(myImage, rect, 0, 0, 200, 200,
GraphicsUnit.Pixel, imageAttr);
}
Public Sub SetColorMatrixExample(ByVal e As PaintEventArgs)
' Create a rectangle image with all colors set to 128 (medium
' gray).
Dim myBitmap As New Bitmap(50, 50, PixelFormat.Format32bppArgb)
Dim g As Graphics = Graphics.FromImage(myBitmap)
g.FillRectangle(New SolidBrush(Color.FromArgb(255, 128, 128, _
128)), New Rectangle(0, 0, 50, 50))
myBitmap.Save("Rectangle1.jpg")
' Open an Image file and draw it to the screen.
Dim myImage As Image = Image.FromFile("Rectangle1.jpg")
e.Graphics.DrawImage(myImage, 20, 20)
' Initialize the color matrix.
Dim myColorMatrix As New ColorMatrix
myColorMatrix.Matrix00 = 1.75F
' Red
myColorMatrix.Matrix11 = 1.0F
' Green
myColorMatrix.Matrix22 = 1.0F
' Blue
myColorMatrix.Matrix33 = 1.0F
' alpha
myColorMatrix.Matrix44 = 1.0F
' w
' Create an ImageAttributes object and set the color matrix.
Dim imageAttr As New ImageAttributes
imageAttr.SetColorMatrix(myColorMatrix)
' Draw the image using the color matrix.
Dim rect As New Rectangle(100, 20, 200, 200)
e.Graphics.DrawImage(myImage, rect, 0, 0, 200, 200, _
GraphicsUnit.Pixel, imageAttr)
' Image
End Sub
'SetColorMatrixExample
Remarques
Un objet ImageAttributes conserve les paramètres de couleur et de nuances de gris pour cinq catégories d’ajustement : par défaut, bitmap, pinceau, stylet et texte. Par exemple, vous pouvez spécifier une matrice d’ajustement de couleur pour la catégorie par défaut, une matrice d’ajustement de couleur différente pour la catégorie bitmap, et toujours une matrice d’ajustement de couleur différente pour la catégorie de stylet.
Les paramètres d’ajustement de couleur et d’ajustement des nuances de gris par défaut s’appliquent à toutes les catégories qui n’ont pas de paramètres d’ajustement propres. Par exemple, si vous ne spécifiez jamais de paramètres d’ajustement pour la catégorie de stylet, les paramètres par défaut s’appliquent à la catégorie de stylet.
L’appel de la méthode ImageAttributes.SetColorMatrix(ColorMatrix) équivaut à appeler la méthode ImageAttributes.SetColorMatrix(ColorMatrix, ColorMatrixFlag) et à passer ColorMatrixFlag.Default pour le paramètre flags
.
ColorMatrixFlag.Default spécifie que toutes les couleurs (y compris les gris) sont ajustées par la matrice d’ajustement des couleurs
Voir aussi
S’applique à
SetColorMatrix(ColorMatrix, ColorMatrixFlag)
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
Définit la matrice d’ajustement des couleurs pour la catégorie par défaut.
public:
void SetColorMatrix(System::Drawing::Imaging::ColorMatrix ^ newColorMatrix, System::Drawing::Imaging::ColorMatrixFlag flags);
public void SetColorMatrix (System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrixFlag flags);
member this.SetColorMatrix : System.Drawing.Imaging.ColorMatrix * System.Drawing.Imaging.ColorMatrixFlag -> unit
Public Sub SetColorMatrix (newColorMatrix As ColorMatrix, flags As ColorMatrixFlag)
Paramètres
- newColorMatrix
- ColorMatrix
Matrice d’ajustement des couleurs.
- flags
- ColorMatrixFlag
Élément de ColorMatrixFlag qui spécifie le type d’image et de couleur qui sera affecté par la matrice d’ajustement des couleurs.
Exemples
Pour obtenir un exemple de code, consultez la méthode SetColorMatrix(ColorMatrix).
Remarques
Un objet ImageAttributes conserve les paramètres de couleur et de nuances de gris pour cinq catégories d’ajustement : par défaut, bitmap, pinceau, stylet et texte. Par exemple, vous pouvez spécifier une matrice d’ajustement de couleur pour la catégorie par défaut, une matrice d’ajustement de couleur différente pour la catégorie bitmap, et toujours une matrice d’ajustement de couleur différente pour la catégorie de stylet.
Les paramètres d’ajustement de couleur et d’ajustement des nuances de gris par défaut s’appliquent à toutes les catégories qui n’ont pas de paramètres d’ajustement propres. Par exemple, si vous ne spécifiez jamais de paramètres d’ajustement pour la catégorie de stylet, les paramètres par défaut s’appliquent à la catégorie de stylet.
Voir aussi
S’applique à
SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
- Source:
- ImageAttributes.cs
Définit la matrice d’ajustement des couleurs pour une catégorie spécifiée.
public:
void SetColorMatrix(System::Drawing::Imaging::ColorMatrix ^ newColorMatrix, System::Drawing::Imaging::ColorMatrixFlag mode, System::Drawing::Imaging::ColorAdjustType type);
public void SetColorMatrix (System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrixFlag mode, System.Drawing.Imaging.ColorAdjustType type);
member this.SetColorMatrix : System.Drawing.Imaging.ColorMatrix * System.Drawing.Imaging.ColorMatrixFlag * System.Drawing.Imaging.ColorAdjustType -> unit
Public Sub SetColorMatrix (newColorMatrix As ColorMatrix, mode As ColorMatrixFlag, type As ColorAdjustType)
Paramètres
- newColorMatrix
- ColorMatrix
Matrice d’ajustement des couleurs.
- mode
- ColorMatrixFlag
Élément de ColorMatrixFlag qui spécifie le type d’image et de couleur qui sera affecté par la matrice d’ajustement des couleurs.
- type
- ColorAdjustType
Élément de ColorAdjustType qui spécifie la catégorie pour laquelle la matrice d’ajustement de couleur est définie.
Exemples
L’exemple de code suivant montre comment utiliser la méthode SetColorMatrix. Pour exécuter cet exemple, collez le code dans un Windows Form et appelez RotateColors
à partir de la méthode de gestion des événements Paint du formulaire, en passant e
en tant que PaintEventArgs.
private void RotateColors(PaintEventArgs e)
{
Bitmap image = new Bitmap("RotationInput.bmp");
ImageAttributes imageAttributes = new ImageAttributes();
int width = image.Width;
int height = image.Height;
float degrees = 60f;
double r = degrees * System.Math.PI / 180; // degrees to radians
float[][] colorMatrixElements = {
new float[] {(float)System.Math.Cos(r), (float)System.Math.Sin(r), 0, 0, 0},
new float[] {(float)-System.Math.Sin(r), (float)-System.Math.Cos(r), 0, 0, 0},
new float[] {0, 0, 2, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}};
ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);
imageAttributes.SetColorMatrix(
colorMatrix,
ColorMatrixFlag.Default,
ColorAdjustType.Bitmap);
e.Graphics.DrawImage(image, 10, 10, width, height);
e.Graphics.DrawImage(
image,
new Rectangle(150, 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);
}
Private Sub RotateColors(ByVal e As PaintEventArgs)
Dim image As Bitmap = New Bitmap("RotationInput.bmp")
Dim imageAttributes As New ImageAttributes()
Dim width As Integer = image.Width
Dim height As Integer = image.Height
Dim degrees As Single = 60.0F
Dim r As Double = degrees * System.Math.PI / 180 ' degrees to radians
Dim colorMatrixElements As Single()() = { _
New Single() {CSng(System.Math.Cos(r)), _
CSng(System.Math.Sin(r)), 0, 0, 0}, _
New Single() {CSng(-System.Math.Sin(r)), _
CSng(-System.Math.Cos(r)), 0, 0, 0}, _
New Single() {0, 0, 2, 0, 0}, _
New Single() {0, 0, 0, 1, 0}, _
New Single() {0, 0, 0, 0, 1}}
Dim colorMatrix As New ColorMatrix(colorMatrixElements)
imageAttributes.SetColorMatrix( _
colorMatrix, _
ColorMatrixFlag.Default, _
ColorAdjustType.Bitmap)
e.Graphics.DrawImage(image, 10, 10, width, height)
' Pass in the destination rectangle (2nd argument), the upper-left corner
' (3rd and 4th arguments), width (5th argument), and height (6th
' argument) of the source rectangle.
e.Graphics.DrawImage( _
image, _
New Rectangle(150, 10, width, height), _
0, 0, _
width, _
height, _
GraphicsUnit.Pixel, _
imageAttributes)
End Sub
Remarques
Un objet ImageAttributes conserve les paramètres de couleur et de nuances de gris pour cinq catégories d’ajustement : par défaut, bitmap, pinceau, stylet et texte. Par exemple, vous pouvez spécifier une matrice d’ajustement de couleur pour la catégorie par défaut, une matrice d’ajustement de couleur différente pour la catégorie bitmap, et toujours une matrice d’ajustement de couleur différente pour la catégorie de stylet.
Les paramètres d’ajustement de couleur et d’ajustement des nuances de gris par défaut s’appliquent à toutes les catégories qui n’ont pas de paramètres d’ajustement propres. Par exemple, si vous ne spécifiez jamais de paramètres d’ajustement pour la catégorie de stylet, les paramètres par défaut s’appliquent à la catégorie de stylet.
Dès que vous spécifiez un paramètre d’ajustement de couleur ou d’ajustement des nuances de gris pour une certaine catégorie, les paramètres d’ajustement par défaut ne s’appliquent plus à cette catégorie. Par exemple, supposons que vous spécifiez une collection de paramètres d’ajustement pour la catégorie par défaut. Si vous définissez la matrice d’ajustement des couleurs pour la catégorie de stylet en passant Pen à la méthode SetColorMatrix, aucun des paramètres d’ajustement par défaut ne s’applique aux stylets.