ImageAttributes.SetColorMatrix Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Задает матрицу корректировки цвета.
Перегрузки
SetColorMatrix(ColorMatrix) |
Задает матрицу корректировки цвета для категории по умолчанию. |
SetColorMatrix(ColorMatrix, ColorMatrixFlag) |
Задает матрицу корректировки цвета для категории по умолчанию. |
SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType) |
Задает матрицу корректировки цвета для указанной категории. |
SetColorMatrix(ColorMatrix)
- Исходный код:
- ImageAttributes.cs
- Исходный код:
- ImageAttributes.cs
- Исходный код:
- 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. Код выполняет следующие действия:
Создает прямоугольник, имеющий все значения цвета, равные 128, создавая прямоугольник, заполненный сплошным средним серым цветом. Затем код рисует этот прямоугольник на экран.
Создает ColorMatrix и задает расположение Matrix значение 1,75, которое подчеркивает красный компонент изображения.
Создает объект ImageAttributes и вызывает метод SetColorMatrix.
Рисует изображение (второй прямоугольник) на экран с помощью 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
- Исходный код:
- 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
- Исходный код:
- 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 поддерживает параметры цвета и серого шкалы для пяти категорий корректировки: по умолчанию, растровая карта, кисть, перо и текст. Например, можно указать матрицу корректировки цвета для категории по умолчанию, другую матрицу корректировки цвета для категории растровых изображений и по-прежнему другую матрицу настройки цвета для категории пера.
Параметры настройки цветов по умолчанию и настройки серого шкалы применяются ко всем категориям, которые не имеют собственных параметров корректировки. Например, если вы никогда не указываете параметры корректировки для категории пера, параметры по умолчанию применяются к категории пера.
Как только вы указываете параметр настройки цветов или серого шкалы для определенной категории, параметры корректировки по умолчанию больше не применяются к этой категории. Например, предположим, что вы указываете коллекцию параметров корректировки для категории по умолчанию. Если задать матрицу корректировки цвета для категории пера, передав Pen методу SetColorMatrix, ни один из параметров настройки по умолчанию не будет применяться к перам.