Aracılığıyla paylaş


ImageAttributes.SetColorMatrix Yöntem

Tanım

Renk ayarlama matrisini ayarlar.

Aşırı Yüklemeler

SetColorMatrix(ColorMatrix)

Varsayılan kategori için renk ayarlama matrisini ayarlar.

SetColorMatrix(ColorMatrix, ColorMatrixFlag)

Varsayılan kategori için renk ayarlama matrisini ayarlar.

SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)

Belirtilen kategori için renk ayarlama matrisini ayarlar.

SetColorMatrix(ColorMatrix)

Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs

Varsayılan kategori için renk ayarlama matrisini ayarlar.

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)

Parametreler

newColorMatrix
ColorMatrix

Renk ayarlama matrisi.

Örnekler

Aşağıdaki kod örneği Windows Forms ile kullanılmak üzere tasarlanmıştır ve Paint olay işleyicisinin bir parametresi olan PaintEventArgsegerektirir. Kod aşağıdaki eylemleri gerçekleştirir:

  1. Tüm renk değerlerinin 128 olarak ayarlandığı bir dikdörtgen görüntüsü oluşturur ve düz orta-gri renkle doldurulmuş bir dikdörtgen oluşturur. Kod daha sonra bu dikdörtgen görüntüsünü ekrana çizer.

  2. Bir ColorMatrix oluşturur ve görüntünün kırmızı bileşenini vurgulayan Matrix konumunu 1,75 olarak ayarlar.

  3. bir ImageAttributes nesnesi oluşturur ve SetColorMatrix yöntemini çağırır.

  4. Yalnızca ImageAttributes nesnesinde ayarlanan ColorMatrix kullanarak görüntüyü (ikinci bir dikdörtgen) ekrana çizer.

İkinci dikdörtgenin kırmızı rengi vurgulanmış olduğunu unutmayın.

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

Açıklamalar

ImageAttributes nesnesi, beş ayar kategorisi için renk ve gri tonlama ayarlarını korur: varsayılan, bit eşlem, fırça, kalem ve metin. Örneğin, varsayılan kategori için bir renk ayarlama matrisi, bit eşlem kategorisi için farklı bir renk ayarlama matrisi ve kalem kategorisi için farklı bir renk ayarlama matrisi belirtebilirsiniz.

Varsayılan renk ayarlama ve gri tonlamalı ayarlama ayarları, kendi ayarlama ayarları olmayan tüm kategoriler için geçerlidir. Örneğin, kalem kategorisi için hiçbir ayarlama ayarı belirtmezseniz, varsayılan ayarlar kalem kategorisine uygulanır.

ImageAttributes.SetColorMatrix(ColorMatrix) yöntemini çağırmak, ImageAttributes.SetColorMatrix(ColorMatrix, ColorMatrixFlag) yöntemini çağırmak ve flags parametresi için ColorMatrixFlag.Default geçirmekle eşdeğerdir. ColorMatrixFlag.Default tüm renklerin (griler dahil) renk ayarlama matrisi tarafından ayarlandığını belirtir

Ayrıca bkz.

  • Görüntüleri Yeniden Renklendir

Şunlara uygulanır

SetColorMatrix(ColorMatrix, ColorMatrixFlag)

Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs

Varsayılan kategori için renk ayarlama matrisini ayarlar.

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)

Parametreler

newColorMatrix
ColorMatrix

Renk ayarlama matrisi.

flags
ColorMatrixFlag

Renk ayarlama matrisi tarafından etkilenecek görüntü ve renk türünü belirten bir ColorMatrixFlag öğesi.

Örnekler

Kod örneği için SetColorMatrix(ColorMatrix) yöntemine bakın.

Açıklamalar

ImageAttributes nesnesi, beş ayar kategorisi için renk ve gri tonlama ayarlarını korur: varsayılan, bit eşlem, fırça, kalem ve metin. Örneğin, varsayılan kategori için bir renk ayarlama matrisi, bit eşlem kategorisi için farklı bir renk ayarlama matrisi ve kalem kategorisi için farklı bir renk ayarlama matrisi belirtebilirsiniz.

Varsayılan renk ayarlama ve gri tonlamalı ayarlama ayarları, kendi ayarlama ayarları olmayan tüm kategoriler için geçerlidir. Örneğin, kalem kategorisi için hiçbir ayarlama ayarı belirtmezseniz, varsayılan ayarlar kalem kategorisine uygulanır.

Ayrıca bkz.

  • Görüntüleri Yeniden Renklendir

Şunlara uygulanır

SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)

Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs
Kaynak:
ImageAttributes.cs

Belirtilen kategori için renk ayarlama matrisini ayarlar.

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)

Parametreler

newColorMatrix
ColorMatrix

Renk ayarlama matrisi.

mode
ColorMatrixFlag

Renk ayarlama matrisi tarafından etkilenecek görüntü ve renk türünü belirten bir ColorMatrixFlag öğesi.

type
ColorAdjustType

Renk ayarlama matrisinin ayarlandığı kategoriyi belirten ColorAdjustType öğesi.

Örnekler

Aşağıdaki kod örneği, SetColorMatrix yönteminin nasıl kullanılacağını gösterir. Bu örneği çalıştırmak için, kodu bir Windows Formuna yapıştırın ve formun Paint olay işleme yönteminden RotateColors çağırın ve ePaintEventArgsolarak geçirin.

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

Açıklamalar

ImageAttributes nesnesi, beş ayar kategorisi için renk ve gri tonlama ayarlarını korur: varsayılan, bit eşlem, fırça, kalem ve metin. Örneğin, varsayılan kategori için bir renk ayarlama matrisi, bit eşlem kategorisi için farklı bir renk ayarlama matrisi ve kalem kategorisi için farklı bir renk ayarlama matrisi belirtebilirsiniz.

Varsayılan renk ayarlama ve gri tonlamalı ayarlama ayarları, kendi ayarlama ayarları olmayan tüm kategoriler için geçerlidir. Örneğin, kalem kategorisi için hiçbir ayarlama ayarı belirtmezseniz, varsayılan ayarlar kalem kategorisine uygulanır.

Belirli bir kategori için renk ayarlaması veya gri tonlamalı ayarlama ayarı belirttiğiniz anda, varsayılan ayarlama ayarları artık bu kategoriye uygulanmaz. Örneğin, varsayılan kategori için bir ayarlama ayarları koleksiyonu belirttiğinizi varsayalım. Pen SetColorMatrix yöntemine geçirerek kalem kategorisi için renk ayarlama matrisini ayarlarsanız, varsayılan ayarlama ayarlarının hiçbiri kalemlere uygulanmaz.

Şunlara uygulanır