ImageAttributes.SetColorMatrix Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Imposta la matrice di regolazione del colore.
Overload
SetColorMatrix(ColorMatrix) |
Imposta la matrice di regolazione del colore per la categoria predefinita. |
SetColorMatrix(ColorMatrix, ColorMatrixFlag) |
Imposta la matrice di regolazione del colore per la categoria predefinita. |
SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType) |
Imposta la matrice di regolazione del colore per una categoria specificata. |
SetColorMatrix(ColorMatrix)
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
Imposta la matrice di regolazione del colore per la categoria predefinita.
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)
Parametri
- newColorMatrix
- ColorMatrix
Matrice di regolazione del colore.
Esempio
L'esempio di codice seguente è progettato per l'uso con Windows Form e richiede PaintEventArgse
, che è un parametro del gestore eventi Paint. Il codice esegue le azioni seguenti:
Crea un'immagine rettangolo con tutti i valori di colore impostati su 128, generando un rettangolo riempito con un colore grigio medio a tinta unita. Il codice disegna quindi questa immagine rettangolo sullo schermo.
Crea un ColorMatrix e ne imposta la posizione Matrix su 1,75, che evidenzia il componente rosso dell'immagine.
Crea un oggetto ImageAttributes e chiama il metodo SetColorMatrix.
Disegna l'immagine (un secondo rettangolo) sullo schermo usando il ColorMatrix appena impostato nell'oggetto ImageAttributes.
Si noti che il secondo rettangolo ha il colore rosso sottolineato.
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
Commenti
Un oggetto ImageAttributes mantiene le impostazioni di colore e gradazioni di grigio per cinque categorie di regolazione: default, bitmap, brush, pen e text. Ad esempio, è possibile specificare una matrice di regolazione del colore per la categoria predefinita, una matrice di regolazione del colore diversa per la categoria bitmap e una matrice di regolazione del colore diversa per la categoria della penna.
Le impostazioni predefinite per la regolazione del colore e la regolazione della scala di grigi si applicano a tutte le categorie che non dispongono di impostazioni di regolazione personalizzate. Ad esempio, se non si specificano mai impostazioni di regolazione per la categoria della penna, le impostazioni predefinite si applicano alla categoria della penna.
La chiamata al metodo ImageAttributes.SetColorMatrix(ColorMatrix) equivale a chiamare il metodo ImageAttributes.SetColorMatrix(ColorMatrix, ColorMatrixFlag) e passare ColorMatrixFlag.Default per il parametro flags
.
ColorMatrixFlag.Default specifica che tutti i colori (inclusi i grigi) vengono regolati dalla matrice di regolazione del colore
Vedi anche
Si applica a
SetColorMatrix(ColorMatrix, ColorMatrixFlag)
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
Imposta la matrice di regolazione del colore per la categoria predefinita.
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)
Parametri
- newColorMatrix
- ColorMatrix
Matrice di regolazione del colore.
- flags
- ColorMatrixFlag
Elemento di ColorMatrixFlag che specifica il tipo di immagine e colore che verrà influenzato dalla matrice di regolazione del colore.
Esempio
Per un esempio di codice, vedere il metodo SetColorMatrix(ColorMatrix).
Commenti
Un oggetto ImageAttributes mantiene le impostazioni di colore e gradazioni di grigio per cinque categorie di regolazione: default, bitmap, brush, pen e text. Ad esempio, è possibile specificare una matrice di regolazione del colore per la categoria predefinita, una matrice di regolazione del colore diversa per la categoria bitmap e una matrice di regolazione del colore diversa per la categoria della penna.
Le impostazioni predefinite per la regolazione del colore e la regolazione della scala di grigi si applicano a tutte le categorie che non dispongono di impostazioni di regolazione personalizzate. Ad esempio, se non si specificano mai impostazioni di regolazione per la categoria della penna, le impostazioni predefinite si applicano alla categoria della penna.
Vedi anche
Si applica a
SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
- Origine:
- ImageAttributes.cs
Imposta la matrice di regolazione del colore per una categoria specificata.
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)
Parametri
- newColorMatrix
- ColorMatrix
Matrice di regolazione del colore.
- mode
- ColorMatrixFlag
Elemento di ColorMatrixFlag che specifica il tipo di immagine e colore che verrà influenzato dalla matrice di regolazione del colore.
- type
- ColorAdjustType
Elemento di ColorAdjustType che specifica la categoria per cui è impostata la matrice di regolazione del colore.
Esempio
Nell'esempio di codice seguente viene illustrato come usare il metodo SetColorMatrix. Per eseguire questo esempio, incollare il codice in un Windows Form e chiamare RotateColors
dal metodo di gestione degli eventi Paint del modulo, passando e
come 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
Commenti
Un oggetto ImageAttributes mantiene le impostazioni di colore e gradazioni di grigio per cinque categorie di regolazione: default, bitmap, brush, pen e text. Ad esempio, è possibile specificare una matrice di regolazione del colore per la categoria predefinita, una matrice di regolazione del colore diversa per la categoria bitmap e una matrice di regolazione del colore diversa per la categoria della penna.
Le impostazioni predefinite per la regolazione del colore e la regolazione della scala di grigi si applicano a tutte le categorie che non dispongono di impostazioni di regolazione personalizzate. Ad esempio, se non si specificano mai impostazioni di regolazione per la categoria della penna, le impostazioni predefinite si applicano alla categoria della penna.
Non appena si specifica un'impostazione di regolazione del colore o di regolazione della scala di grigi per una determinata categoria, le impostazioni di regolazione predefinite non si applicano più a tale categoria. Si supponga, ad esempio, di specificare una raccolta di impostazioni di regolazione per la categoria predefinita. Se si imposta la matrice di regolazione del colore per la categoria della penna passando Pen al metodo SetColorMatrix, nessuna delle impostazioni di regolazione predefinite verrà applicata alle penne.