ImageAttributes.SetColorMatrix Метод

Определение

Задает матрицу настройки цвета.

Перегрузки

SetColorMatrix(ColorMatrix)

Задает матрицу настройки цвета для категории по умолчанию.

SetColorMatrix(ColorMatrix, ColorMatrixFlag)

Задает матрицу настройки цвета для категории по умолчанию.

SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)

Задает матрицу настройки цвета для указанной категории.

SetColorMatrix(ColorMatrix)

Исходный код:
ImageAttributes.cs
Исходный код:
ImageAttributes.cs
Исходный код:
ImageAttributes.cs

Задает матрицу настройки цвета для категории по умолчанию.

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)

Параметры

newColorMatrix
ColorMatrix

Матрица настройки цвета.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующие действия.

  1. Создает прямоугольное изображение со всеми значениями цвета, равными 128, создавая прямоугольник, заполненный сплошным средне-серым цветом. Затем код рисует это изображение прямоугольника на экране.

  2. ColorMatrix Создает объект и задает для его Matrix расположения значение 1,75, что подчеркивает красный компонент изображения.

  3. Создает ImageAttributes объект и вызывает SetColorMatrix метод .

  4. Рисует изображение (второй прямоугольник) на экране с помощью только что заданного ColorMatrix в объекте ImageAttributes .

Обратите внимание, что во втором прямоугольнике выделен красный цвет.

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

Комментарии

Объект ImageAttributes поддерживает параметры цвета и оттенков серого для пяти категорий корректировки: по умолчанию, точечный рисунок, кисть, перо и текст. Например, можно указать матрицу корректировки цвета для категории по умолчанию, другую матрицу настройки цвета для категории растрового изображения, а также другую матрицу настройки цвета для категории пера.

Параметры настройки цвета и оттенков серого по умолчанию применяются ко всем категориям, у которых нет собственных параметров настройки. Например, если вы никогда не указываете параметры корректировки для категории пера, параметры по умолчанию применяются к категории пера.

ImageAttributes.SetColorMatrix(ColorMatrix) Вызов метода эквивалентен вызову ImageAttributes.SetColorMatrix(ColorMatrix, ColorMatrixFlag) метода и передаче ColorMatrixFlag.Default для flags параметра . ColorMatrixFlag.Default указывает, что все цвета (включая серый) корректируются матрицей настройки цвета

См. также раздел

Применяется к

SetColorMatrix(ColorMatrix, ColorMatrixFlag)

Исходный код:
ImageAttributes.cs
Исходный код:
ImageAttributes.cs
Исходный код:
ImageAttributes.cs

Задает матрицу настройки цвета для категории по умолчанию.

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)

Параметры

newColorMatrix
ColorMatrix

Матрица настройки цвета.

flags
ColorMatrixFlag

Элемент ColorMatrixFlag, определяющий тип изображения и цвет, на которые будет влиять матрица настройки цвета.

Примеры

Пример кода см. в методе SetColorMatrix(ColorMatrix) .

Комментарии

Объект ImageAttributes поддерживает параметры цвета и оттенков серого для пяти категорий корректировки: по умолчанию, точечный рисунок, кисть, перо и текст. Например, можно указать матрицу корректировки цвета для категории по умолчанию, другую матрицу настройки цвета для категории растрового изображения, а также другую матрицу настройки цвета для категории пера.

Параметры настройки цвета и оттенков серого по умолчанию применяются ко всем категориям, у которых нет собственных параметров настройки. Например, если вы никогда не указываете параметры корректировки для категории пера, параметры по умолчанию применяются к категории пера.

См. также раздел

Применяется к

SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)

Исходный код:
ImageAttributes.cs
Исходный код:
ImageAttributes.cs
Исходный код:
ImageAttributes.cs

Задает матрицу настройки цвета для указанной категории.

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)

Параметры

newColorMatrix
ColorMatrix

Матрица настройки цвета.

mode
ColorMatrixFlag

Элемент ColorMatrixFlag, определяющий тип изображения и цвет, на которые будет влиять матрица настройки цвета.

type
ColorAdjustType

Элемент ColorAdjustType, указывающий категорию, для которой задается матрица настройки цвета.

Примеры

В следующем примере кода показано, как использовать метод SetColorMatrix. Чтобы выполнить этот пример, вставьте код в Форму Windows Form и вызовите RotateColors метод обработки событий формы Paint , передавая e как 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

Комментарии

Объект ImageAttributes поддерживает параметры цвета и оттенков серого для пяти категорий корректировки: по умолчанию, точечный рисунок, кисть, перо и текст. Например, можно указать матрицу корректировки цвета для категории по умолчанию, другую матрицу настройки цвета для категории растрового изображения, а также другую матрицу настройки цвета для категории пера.

Параметры настройки цвета и оттенков серого по умолчанию применяются ко всем категориям, у которых нет собственных параметров настройки. Например, если вы никогда не указываете параметры корректировки для категории пера, параметры по умолчанию применяются к категории пера.

Как только вы указываете параметр настройки цвета или оттенков серого для определенной категории, параметры настройки по умолчанию больше не применяются к этой категории. Например, предположим, что вы указали коллекцию параметров корректировки для категории по умолчанию. Если задать матрицу настройки цвета для категории пера путем передачи PenSetColorMatrix в метод , ни один из параметров настройки по умолчанию не будет применяться к ручкам.

Применяется к