Share via


ColorMatrix Oluşturucular

Tanım

ColorMatrix sınıfının yeni bir örneğini başlatır.

Aşırı Yüklemeler

ColorMatrix()

ColorMatrix sınıfının yeni bir örneğini başlatır.

ColorMatrix(ReadOnlySpan<Single>)
ColorMatrix(Single[][])

Belirtilen matristeki ColorMatrixnewColorMatrixöğeleri kullanarak sınıfının yeni bir örneğini başlatır.

ColorMatrix()

Kaynak:
ColorMatrix.cs
Kaynak:
ColorMatrix.cs
Kaynak:
ColorMatrix.cs

ColorMatrix sınıfının yeni bir örneğini başlatır.

public:
 ColorMatrix();
public ColorMatrix ();
Public Sub New ()

Şunlara uygulanır

ColorMatrix(ReadOnlySpan<Single>)

Kaynak:
ColorMatrix.cs
public:
 ColorMatrix(ReadOnlySpan<float> newColorMatrix);
public ColorMatrix (ReadOnlySpan<float> newColorMatrix);
new System.Drawing.Imaging.ColorMatrix : ReadOnlySpan<single> -> System.Drawing.Imaging.ColorMatrix
Public Sub New (newColorMatrix As ReadOnlySpan(Of Single))

Parametreler

newColorMatrix
ReadOnlySpan<Single>

Şunlara uygulanır

ColorMatrix(Single[][])

Kaynak:
ColorMatrix.cs
Kaynak:
ColorMatrix.cs
Kaynak:
ColorMatrix.cs

Önemli

Bu API, CLS uyumlu değildir.

Belirtilen matristeki ColorMatrixnewColorMatrixöğeleri kullanarak sınıfının yeni bir örneğini başlatır.

public:
 ColorMatrix(cli::array <cli::array <float> ^> ^ newColorMatrix);
[System.CLSCompliant(false)]
public ColorMatrix (float[][] newColorMatrix);
[<System.CLSCompliant(false)>]
new System.Drawing.Imaging.ColorMatrix : single[][] -> System.Drawing.Imaging.ColorMatrix
Public Sub New (newColorMatrix As Single()())

Parametreler

newColorMatrix
Single[][]

Yeni ColorMatrixöğesinin öğelerinin değerleri.

Öznitelikler

Örnekler

Aşağıdaki kod örneğinde bir ColorMatrixoluşturma ve kullanma işlemleri gösterilmektedir. Bu örneği çalıştırmak için, kodu bir Windows Formuna yapıştırın ve olarak geçen PaintEventArgse formun Paint olay işleme yönteminden çağrısı RotateColors yapın.

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

Şunlara uygulanır