ImageAttributes.SetColorMatrix Methode

Definitie

Hiermee stelt u de matrix voor kleuraanpassing in.

Overloads

Name Description
SetColorMatrix(ColorMatrix)

Hiermee stelt u de matrix voor kleuraanpassing in voor de standaardcategorie.

SetColorMatrix(ColorMatrix, ColorMatrixFlag)

Hiermee stelt u de matrix voor kleuraanpassing in voor de standaardcategorie.

SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)

Hiermee stelt u de kleuraanpassingsmatrix voor een opgegeven categorie in.

SetColorMatrix(ColorMatrix)

Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs

Hiermee stelt u de matrix voor kleuraanpassing in voor de standaardcategorie.

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)

Parameters

newColorMatrix
ColorMatrix

De kleuraanpassingsmatrix.

Voorbeelden

Het volgende codevoorbeeld is ontworpen voor gebruik met Windows Forms en vereist PaintEventArgse, een parameter van de Paint gebeurtenis-handler. De code voert de volgende acties uit:

  1. Hiermee maakt u een afbeelding van een rechthoek met alle kleurwaarden die zijn ingesteld op 128, waardoor een rechthoek wordt geproduceerd die is gevuld met een effen, normaalgrijze kleur. De code tekent vervolgens deze rechthoekafbeelding naar het scherm.

  2. Hiermee maakt u een ColorMatrix en stelt u de Matrix locatie in op 1,75, waarmee het rode onderdeel van de afbeelding wordt benadrukt.

  3. Hiermee maakt u een ImageAttributes object en roept u de methode aan SetColorMatrix .

  4. Hiermee tekent u de afbeelding (een tweede rechthoek) naar het scherm met behulp van de ColorMatrix zojuist ingestelde afbeelding in het ImageAttributes object.

De tweede rechthoek heeft de kleur rood benadrukt.

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

Opmerkingen

Een ImageAttributes object onderhoudt instellingen voor kleur en grijswaarden voor vijf aanpassingscategorieën: standaard, bitmap, penseel, pen en tekst. U kunt bijvoorbeeld een kleuraanpassingsmatrix opgeven voor de standaardcategorie, een andere kleuraanpassingsmatrix voor de bitmapcategorie en nog steeds een andere kleuraanpassingsmatrix voor de pencategorie.

De standaardinstellingen voor kleuraanpassing en instellingen voor grijswaarden zijn van toepassing op alle categorieën die geen aanpassingsinstellingen hebben. Als u bijvoorbeeld nooit aanpassingsinstellingen voor de pencategorie opgeeft, zijn de standaardinstellingen van toepassing op de pencategorie.

Het aanroepen van de ImageAttributes.SetColorMatrix(ColorMatrix) methode is gelijk aan het aanroepen van de ImageAttributes.SetColorMatrix(ColorMatrix, ColorMatrixFlag) methode en het doorgeven ColorMatrixFlag.Default van de flags parameter. ColorMatrixFlag.Default geeft aan dat alle kleuren (inclusief grijswaarden) worden aangepast door de matrix voor kleuraanpassing

Zie ook

Van toepassing op

SetColorMatrix(ColorMatrix, ColorMatrixFlag)

Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs

Hiermee stelt u de matrix voor kleuraanpassing in voor de standaardcategorie.

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)

Parameters

newColorMatrix
ColorMatrix

De kleuraanpassingsmatrix.

flags
ColorMatrixFlag

Een element hiervan ColorMatrixFlag geeft het type afbeelding en kleur aan dat wordt beïnvloed door de matrix voor kleuraanpassing.

Voorbeelden

Zie de SetColorMatrix(ColorMatrix) methode voor een codevoorbeeld.

Opmerkingen

Een ImageAttributes object onderhoudt instellingen voor kleur en grijswaarden voor vijf aanpassingscategorieën: standaard, bitmap, penseel, pen en tekst. U kunt bijvoorbeeld een kleuraanpassingsmatrix opgeven voor de standaardcategorie, een andere kleuraanpassingsmatrix voor de bitmapcategorie en nog steeds een andere kleuraanpassingsmatrix voor de pencategorie.

De standaardinstellingen voor kleuraanpassing en instellingen voor grijswaarden zijn van toepassing op alle categorieën die geen aanpassingsinstellingen hebben. Als u bijvoorbeeld nooit aanpassingsinstellingen voor de pencategorie opgeeft, zijn de standaardinstellingen van toepassing op de pencategorie.

Zie ook

Van toepassing op

SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)

Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs
Bron:
ImageAttributes.cs

Hiermee stelt u de kleuraanpassingsmatrix voor een opgegeven categorie in.

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)

Parameters

newColorMatrix
ColorMatrix

De kleuraanpassingsmatrix.

mode
ColorMatrixFlag

Een element hiervan ColorMatrixFlag geeft het type afbeelding en kleur aan dat wordt beïnvloed door de matrix voor kleuraanpassing.

type
ColorAdjustType

Een element hiervan ColorAdjustType geeft de categorie aan waarvoor de kleuraanpassingsmatrix is ingesteld.

Voorbeelden

In het volgende codevoorbeeld ziet u hoe u de SetColorMatrix methode gebruikt. Als u dit voorbeeld wilt uitvoeren, plakt u de code in een Windows Formulier en roept u RotateColors aan vanuit de methode Paint gebeurtenisafhandeling, waarbij u e doorgeeft als 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

Opmerkingen

Een ImageAttributes object onderhoudt instellingen voor kleur en grijswaarden voor vijf aanpassingscategorieën: standaard, bitmap, penseel, pen en tekst. U kunt bijvoorbeeld een kleuraanpassingsmatrix opgeven voor de standaardcategorie, een andere kleuraanpassingsmatrix voor de bitmapcategorie en nog steeds een andere kleuraanpassingsmatrix voor de pencategorie.

De standaardinstellingen voor kleuraanpassing en instellingen voor grijswaarden zijn van toepassing op alle categorieën die geen aanpassingsinstellingen hebben. Als u bijvoorbeeld nooit aanpassingsinstellingen voor de pencategorie opgeeft, zijn de standaardinstellingen van toepassing op de pencategorie.

Zodra u een instelling voor kleuraanpassing of instelling voor grijswaarden voor een bepaalde categorie opgeeft, zijn de standaardinstellingen voor aanpassing niet meer van toepassing op die categorie. Stel dat u een verzameling aanpassingsinstellingen voor de standaardcategorie opgeeft. Als u de kleuraanpassingsmatrix voor de pencategorie instelt door deze door te geven Pen aan de SetColorMatrix methode, zijn geen van de standaardinstellingen voor aanpassing van toepassing op pennen.

Van toepassing op