Share via


ImageAttributes.SetColorMatrix Metode

Definisi

Mengatur matriks penyesuaian warna.

Overload

SetColorMatrix(ColorMatrix)

Mengatur matriks penyesuaian warna untuk kategori default.

SetColorMatrix(ColorMatrix, ColorMatrixFlag)

Mengatur matriks penyesuaian warna untuk kategori default.

SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)

Mengatur matriks penyesuaian warna untuk kategori tertentu.

SetColorMatrix(ColorMatrix)

Sumber:
ImageAttributes.cs
Sumber:
ImageAttributes.cs
Sumber:
ImageAttributes.cs

Mengatur matriks penyesuaian warna untuk kategori default.

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)

Parameter

newColorMatrix
ColorMatrix

Matriks penyesuaian warna.

Contoh

Contoh kode berikut dirancang untuk digunakan dengan Formulir Windows, dan memerlukan PaintEventArgse, yang merupakan parameter penanganan Paint aktivitas. Kode melakukan tindakan berikut:

  1. Membuat gambar persegi panjang yang memiliki semua nilai warna yang diatur ke 128, menghasilkan persegi panjang yang diisi dengan warna abu-abu sedang solid. Kode kemudian menggambar gambar persegi panjang ini ke layar.

  2. ColorMatrix Membuat dan mengatur lokasinya Matrix ke 1,75, yang menekankan komponen merah gambar.

  3. ImageAttributes Membuat objek dan memanggil SetColorMatrix metode .

  4. Menggambar gambar (persegi panjang kedua) ke layar menggunakan ColorMatrix yang baru saja diatur dalam ImageAttributes objek .

Perhatikan bahwa persegi panjang kedua memiliki warna merah yang ditekankan.

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

Keterangan

Objek ImageAttributes mempertahankan pengaturan warna dan skala abu-abu untuk lima kategori penyesuaian: default, bitmap, kuas, pena, dan teks. Misalnya, Anda dapat menentukan matriks penyesuaian warna untuk kategori default, matriks penyesuaian warna yang berbeda untuk kategori bitmap, dan masih matriks penyesuaian warna yang berbeda untuk kategori pena.

Pengaturan penyesuaian warna default dan penyesuaian skala abu-abu berlaku untuk semua kategori yang tidak memiliki pengaturan penyesuaian sendiri. Misalnya, jika Anda tidak pernah menentukan pengaturan penyesuaian apa pun untuk kategori pena, pengaturan default berlaku untuk kategori pena.

Memanggil ImageAttributes.SetColorMatrix(ColorMatrix) metode setara dengan memanggil ImageAttributes.SetColorMatrix(ColorMatrix, ColorMatrixFlag) metode dan meneruskan ColorMatrixFlag.Defaultflags parameter . ColorMatrixFlag.Default menentukan bahwa semua warna (termasuk abu-abu) disesuaikan oleh matriks penyesuaian warna

Lihat juga

Berlaku untuk

SetColorMatrix(ColorMatrix, ColorMatrixFlag)

Sumber:
ImageAttributes.cs
Sumber:
ImageAttributes.cs
Sumber:
ImageAttributes.cs

Mengatur matriks penyesuaian warna untuk kategori default.

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)

Parameter

newColorMatrix
ColorMatrix

Matriks penyesuaian warna.

flags
ColorMatrixFlag

Elemen ColorMatrixFlag yang menentukan jenis gambar dan warna yang akan dipengaruhi oleh matriks penyesuaian warna.

Contoh

Untuk contoh kode, lihat SetColorMatrix(ColorMatrix) metode .

Keterangan

Objek ImageAttributes mempertahankan pengaturan warna dan skala abu-abu untuk lima kategori penyesuaian: default, bitmap, kuas, pena, dan teks. Misalnya, Anda dapat menentukan matriks penyesuaian warna untuk kategori default, matriks penyesuaian warna yang berbeda untuk kategori bitmap, dan masih matriks penyesuaian warna yang berbeda untuk kategori pena.

Pengaturan penyesuaian warna default dan penyesuaian skala abu-abu berlaku untuk semua kategori yang tidak memiliki pengaturan penyesuaian sendiri. Misalnya, jika Anda tidak pernah menentukan pengaturan penyesuaian apa pun untuk kategori pena, pengaturan default berlaku untuk kategori pena.

Lihat juga

Berlaku untuk

SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)

Sumber:
ImageAttributes.cs
Sumber:
ImageAttributes.cs
Sumber:
ImageAttributes.cs

Mengatur matriks penyesuaian warna untuk kategori tertentu.

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)

Parameter

newColorMatrix
ColorMatrix

Matriks penyesuaian warna.

mode
ColorMatrixFlag

Elemen ColorMatrixFlag yang menentukan jenis gambar dan warna yang akan dipengaruhi oleh matriks penyesuaian warna.

type
ColorAdjustType

Elemen ColorAdjustType yang menentukan kategori tempat matriks penyesuaian warna diatur.

Contoh

Contoh kode berikut menunjukkan cara menggunakan SetColorMatrix metode . Untuk menjalankan contoh ini, tempelkan kode ke dalam Formulir Windows dan panggil RotateColors dari metode penanganan peristiwa formulir Paint , meneruskan e sebagai 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

Keterangan

Objek ImageAttributes mempertahankan pengaturan warna dan skala abu-abu untuk lima kategori penyesuaian: default, bitmap, kuas, pena, dan teks. Misalnya, Anda dapat menentukan matriks penyesuaian warna untuk kategori default, matriks penyesuaian warna yang berbeda untuk kategori bitmap, dan masih matriks penyesuaian warna yang berbeda untuk kategori pena.

Pengaturan penyesuaian warna default dan penyesuaian skala abu-abu berlaku untuk semua kategori yang tidak memiliki pengaturan penyesuaian sendiri. Misalnya, jika Anda tidak pernah menentukan pengaturan penyesuaian apa pun untuk kategori pena, pengaturan default berlaku untuk kategori pena.

Segera setelah Anda menentukan pengaturan penyesuaian warna atau penyesuaian skala abu-abu untuk kategori tertentu, pengaturan penyesuaian default tidak lagi berlaku untuk kategori tersebut. Misalnya, Anda menentukan kumpulan pengaturan penyesuaian untuk kategori default. Jika Anda mengatur matriks penyesuaian warna untuk kategori pena dengan meneruskan Pen ke SetColorMatrix metode , tidak ada pengaturan penyesuaian default yang akan berlaku untuk pena.

Berlaku untuk