Bagikan melalui


ColorMatrix Kelas

Definisi

Menentukan matriks 5 x 5 yang berisi koordinat untuk ruang RGBAW. Beberapa metode ImageAttributes kelas menyesuaikan warna gambar dengan menggunakan matriks warna. Kelas ini tidak dapat diwariskan.

public ref class ColorMatrix sealed
public sealed class ColorMatrix
type ColorMatrix = class
Public NotInheritable Class ColorMatrix
Warisan
ColorMatrix

Contoh

Contoh berikut mengambil gambar yang semuanya satu warna (0,2, 0,0, 0,4, 1,0) dan menerapkan transformasi yang dijelaskan dalam paragraf sebelumnya.

Ilustrasi berikut menunjukkan gambar asli di sebelah kiri dan gambar yang diubah di sebelah kanan.

Warna

Kode dalam contoh berikut menggunakan langkah-langkah berikut untuk melakukan pewarnaan ulang:

  1. Menginisialisasi ColorMatrix objek.

  2. ImageAttributes Create objek dan teruskan ColorMatrix objek ke SetColorMatrix metode ImageAttributes objek .

  3. Teruskan ImageAttributes objek ke DrawImage metode Graphics objek.

Contoh sebelumnya dirancang untuk digunakan dengan Formulir Windows, dan memerlukan PaintEventArgse, yang merupakan parameter penanganan Paint aktivitas

Image image = new Bitmap("InputColor.bmp");
ImageAttributes imageAttributes = new ImageAttributes();
int width = image.Width;
int height = image.Height;

float[][] colorMatrixElements = { 
   new float[] {2,  0,  0,  0, 0},        // red scaling factor of 2
   new float[] {0,  1,  0,  0, 0},        // green scaling factor of 1
   new float[] {0,  0,  1,  0, 0},        // blue scaling factor of 1
   new float[] {0,  0,  0,  1, 0},        // alpha scaling factor of 1
   new float[] {.2f, .2f, .2f, 0, 1}};    // three translations of 0.2

ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);

imageAttributes.SetColorMatrix(
   colorMatrix,
   ColorMatrixFlag.Default,
   ColorAdjustType.Bitmap);

e.Graphics.DrawImage(image, 10, 10);

e.Graphics.DrawImage(
   image,
   new Rectangle(120, 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);
Dim image As New Bitmap("InputColor.bmp")
Dim imageAttributes As New ImageAttributes()
Dim width As Integer = image.Width
Dim height As Integer = image.Height

' The following matrix consists of the following transformations:
' red scaling factor of 2
' green scaling factor of 1
' blue scaling factor of 1
' alpha scaling factor of 1
' three translations of 0.2
Dim colorMatrixElements As Single()() = { _
   New Single() {2, 0, 0, 0, 0}, _
   New Single() {0, 1, 0, 0, 0}, _
   New Single() {0, 0, 1, 0, 0}, _
   New Single() {0, 0, 0, 1, 0}, _
   New Single() {0.2F, 0.2F, 0.2F, 0, 1}}

Dim colorMatrix As New ColorMatrix(colorMatrixElements)

imageAttributes.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap)

e.Graphics.DrawImage(image, 10, 10)

e.Graphics.DrawImage( _
   image, _
   New Rectangle(120, 10, width, height), _
   0, _
   0, _
   width, _
   height, _
   GraphicsUnit.Pixel, _
   imageAttributes)

Keterangan

Koefisien matriks merupakan transformasi linier 5 x 5 yang digunakan untuk mengubah nilai homogen ARGB. Misalnya, vektor ARGB direpresentasikan sebagai merah, hijau, biru, alfa dan w, di mana w selalu 1.

Misalnya, Anda ingin memulai dengan warna (0,2, 0,0, 0,4, 1,0) dan menerapkan transformasi berikut:

  1. Menggandakan komponen merah

  2. Tambahkan 0,2 ke komponen merah, hijau, dan biru

Perkalian matriks berikut akan melakukan pasangan transformasi dalam urutan yang tercantum.

Mewarnai Ulang

Elemen matriks warna diindeks (berbasis nol) menurut baris lalu kolom. Misalnya, entri di baris kelima dan kolom ketiga matriks M ditandai dengan M[4][2].

Matriks identitas 5×5 (ditunjukkan dalam ilustrasi berikut) memiliki 1 detik pada diagonal dan 0d di tempat lain. Jika Anda mengalikan vektor warna dengan matriks identitas, vektor warna tidak berubah. Cara mudah untuk membentuk matriks transformasi warna adalah dengan memulai dengan matriks identitas dan membuat perubahan kecil yang menghasilkan transformasi yang diinginkan.

Mewarnai Ulang

Untuk diskusi matriks dan transformasi yang lebih rinci, lihat Sistem Koordinat dan Transformasi.

Konstruktor

ColorMatrix()

Menginisialisasi instans baru kelas ColorMatrix.

ColorMatrix(ReadOnlySpan<Single>)

Menentukan matriks 5 x 5 yang berisi koordinat untuk ruang RGBAW. Beberapa metode ImageAttributes kelas menyesuaikan warna gambar dengan menggunakan matriks warna. Kelas ini tidak dapat diwariskan.

ColorMatrix(Single[][])

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

Properti

Item[Int32, Int32]

Mendapatkan atau mengatur elemen pada baris dan kolom yang ditentukan di ColorMatrix.

Matrix00

Mendapatkan atau mengatur elemen pada baris 0 (nol) dan kolom 0 dari ini ColorMatrix.

Matrix01

Mendapatkan atau mengatur elemen pada baris 0 (nol) dan kolom pertama ini ColorMatrix.

Matrix02

Mendapatkan atau mengatur elemen pada baris 0 (nol) dan kolom kedua dari ini ColorMatrix.

Matrix03

Mendapatkan atau mengatur elemen pada baris 0 (nol) dan kolom ketiga dari ini ColorMatrix. Mewakili komponen alfa.

Matrix04

Mendapatkan atau mengatur elemen pada baris 0 (nol) dan kolom keempat dari ini ColorMatrix.

Matrix10

Mendapatkan atau mengatur elemen pada baris pertama dan kolom 0 (nol) dari ini ColorMatrix.

Matrix11

Mendapatkan atau mengatur elemen pada baris pertama dan kolom pertama dari ini ColorMatrix.

Matrix12

Mendapatkan atau mengatur elemen pada baris pertama dan kolom kedua dari ini ColorMatrix.

Matrix13

Mendapatkan atau mengatur elemen pada baris pertama dan kolom ketiga dari ini ColorMatrix. Mewakili komponen alfa.

Matrix14

Mendapatkan atau mengatur elemen pada baris pertama dan kolom keempat dari ini ColorMatrix.

Matrix20

Mendapatkan atau mengatur elemen pada baris kedua dan kolom 0 (nol) dari ini ColorMatrix.

Matrix21

Mendapatkan atau mengatur elemen pada baris kedua dan kolom pertama dari ini ColorMatrix.

Matrix22

Mendapatkan atau mengatur elemen pada baris kedua dan kolom kedua dari ini ColorMatrix.

Matrix23

Mendapatkan atau mengatur elemen pada baris kedua dan kolom ketiga dari ini ColorMatrix.

Matrix24

Mendapatkan atau mengatur elemen pada baris kedua dan kolom keempat dari ini ColorMatrix.

Matrix30

Mendapatkan atau mengatur elemen pada baris ketiga dan kolom 0 (nol) dari ini ColorMatrix.

Matrix31

Mendapatkan atau mengatur elemen pada baris ketiga dan kolom pertama dari ini ColorMatrix.

Matrix32

Mendapatkan atau mengatur elemen pada baris ketiga dan kolom kedua dari ini ColorMatrix.

Matrix33

Mendapatkan atau mengatur elemen pada baris ketiga dan kolom ketiga dari ini ColorMatrix. Mewakili komponen alfa.

Matrix34

Mendapatkan atau mengatur elemen pada baris ketiga dan kolom keempat dari ini ColorMatrix.

Matrix40

Mendapatkan atau mengatur elemen pada baris keempat dan kolom 0 (nol) dari ini ColorMatrix.

Matrix41

Mendapatkan atau mengatur elemen pada baris keempat dan kolom pertama dari ini ColorMatrix.

Matrix42

Mendapatkan atau mengatur elemen pada baris keempat dan kolom kedua dari ini ColorMatrix.

Matrix43

Mendapatkan atau mengatur elemen pada baris keempat dan kolom ketiga dari ini ColorMatrix. Mewakili komponen alfa.

Matrix44

Mendapatkan atau mengatur elemen pada baris keempat dan kolom keempat dari ini ColorMatrix.

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetType()

Mendapatkan instans Type saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari yang saat ini Object.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga