Bagikan melalui


ColorMatrix Konstruktor

Definisi

Menginisialisasi instans baru kelas ColorMatrix.

Overload

ColorMatrix()

Menginisialisasi instans baru kelas ColorMatrix.

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

Menginisialisasi instans ColorMatrix baru kelas menggunakan elemen dalam matriks newColorMatrixyang ditentukan .

ColorMatrix()

Sumber:
ColorMatrix.cs
Sumber:
ColorMatrix.cs
Sumber:
ColorMatrix.cs

Menginisialisasi instans baru kelas ColorMatrix.

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

Berlaku untuk

ColorMatrix(ReadOnlySpan<Single>)

Sumber:
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))

Parameter

newColorMatrix
ReadOnlySpan<Single>

Berlaku untuk

ColorMatrix(Single[][])

Sumber:
ColorMatrix.cs
Sumber:
ColorMatrix.cs
Sumber:
ColorMatrix.cs

Penting

API ini bukan kompatibel CLS.

Menginisialisasi instans ColorMatrix baru kelas menggunakan elemen dalam matriks newColorMatrixyang ditentukan .

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()())

Parameter

newColorMatrix
Single[][]

Nilai elemen untuk yang baru ColorMatrix.

Atribut

Contoh

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

Berlaku untuk