ImageAttributes.SetColorMatrix Metod

Definition

Anger färgjusteringsmatrisen.

Överlagringar

Name Description
SetColorMatrix(ColorMatrix)

Anger färgjusteringsmatrisen för standardkategorin.

SetColorMatrix(ColorMatrix, ColorMatrixFlag)

Anger färgjusteringsmatrisen för standardkategorin.

SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)

Anger färgjusteringsmatrisen för en angiven kategori.

SetColorMatrix(ColorMatrix)

Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs

Anger färgjusteringsmatrisen för standardkategorin.

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)

Parametrar

newColorMatrix
ColorMatrix

Färgjusteringsmatrisen.

Exempel

Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:

  1. Skapar en rektangelbild som har alla färgvärden inställda på 128, vilket ger en rektangel som är fylld med en solid medelgrå färg. Koden ritar sedan den här rektangelbilden till skärmen.

  2. Skapar en ColorMatrix och anger dess Matrix plats till 1,75, vilket framhäver bildens röda komponent.

  3. Skapar ett ImageAttributes objekt och anropar SetColorMatrix metoden.

  4. Ritar bilden (en andra rektangel) till skärmen med hjälp av just-uppsättningen ColorMatrix i ImageAttributes objektet.

Observera att den andra rektangeln har färgen röd framhävd.

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

Kommentarer

Ett ImageAttributes objekt har färg- och gråskaleinställningar för fem justeringskategorier: standard, bitmapp, pensel, penna och text. Du kan till exempel ange en färgjusteringsmatris för standardkategorin, en annan färgjusteringsmatris för bitmappskategorin och fortfarande en annan färgjusteringsmatris för pennkategorin.

Standardinställningarna för färgjustering och gråskalejustering gäller för alla kategorier som inte har egna justeringsinställningar. Om du till exempel aldrig anger några justeringsinställningar för pennkategorin gäller standardinställningarna för pennkategorin.

ImageAttributes.SetColorMatrix(ColorMatrix) Att anropa metoden motsvarar att anropa ImageAttributes.SetColorMatrix(ColorMatrix, ColorMatrixFlag) metoden och skicka ColorMatrixFlag.Default för parameternflags. ColorMatrixFlag.Default anger att alla färger (inklusive gråtoner) justeras av färgjusteringsmatrisen

Se även

Gäller för

SetColorMatrix(ColorMatrix, ColorMatrixFlag)

Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs

Anger färgjusteringsmatrisen för standardkategorin.

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)

Parametrar

newColorMatrix
ColorMatrix

Färgjusteringsmatrisen.

flags
ColorMatrixFlag

Ett element som ColorMatrixFlag anger vilken typ av bild och färg som ska påverkas av färgjusteringsmatrisen.

Exempel

Ett kodexempel finns i SetColorMatrix(ColorMatrix) metoden.

Kommentarer

Ett ImageAttributes objekt har färg- och gråskaleinställningar för fem justeringskategorier: standard, bitmapp, pensel, penna och text. Du kan till exempel ange en färgjusteringsmatris för standardkategorin, en annan färgjusteringsmatris för bitmappskategorin och fortfarande en annan färgjusteringsmatris för pennkategorin.

Standardinställningarna för färgjustering och gråskalejustering gäller för alla kategorier som inte har egna justeringsinställningar. Om du till exempel aldrig anger några justeringsinställningar för pennkategorin gäller standardinställningarna för pennkategorin.

Se även

Gäller för

SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)

Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs
Källa:
ImageAttributes.cs

Anger färgjusteringsmatrisen för en angiven kategori.

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)

Parametrar

newColorMatrix
ColorMatrix

Färgjusteringsmatrisen.

mode
ColorMatrixFlag

Ett element som ColorMatrixFlag anger vilken typ av bild och färg som ska påverkas av färgjusteringsmatrisen.

type
ColorAdjustType

Ett element i ColorAdjustType som anger den kategori som färgjusteringsmatrisen har angetts för.

Exempel

I följande kodexempel visas hur du använder SetColorMatrix metoden. Om du vill köra det här exemplet klistrar du in koden i ett Windows formulär och anropar RotateColors från formulärets händelsehanteringsmetod Paint och skickar e som 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

Kommentarer

Ett ImageAttributes objekt har färg- och gråskaleinställningar för fem justeringskategorier: standard, bitmapp, pensel, penna och text. Du kan till exempel ange en färgjusteringsmatris för standardkategorin, en annan färgjusteringsmatris för bitmappskategorin och fortfarande en annan färgjusteringsmatris för pennkategorin.

Standardinställningarna för färgjustering och gråskalejustering gäller för alla kategorier som inte har egna justeringsinställningar. Om du till exempel aldrig anger några justeringsinställningar för pennkategorin gäller standardinställningarna för pennkategorin.

Så snart du anger en inställning för färgjustering eller gråskalejustering för en viss kategori gäller standardjusteringsinställningarna inte längre för den kategorin. Anta till exempel att du anger en samling justeringsinställningar för standardkategorin. Om du anger färgjusteringsmatrisen för pennkategorin genom att skicka Pen till SetColorMatrix metoden gäller ingen av standardjusteringsinställningarna för pennor.

Gäller för