Bagikan melalui


ColorMatrix Kelas

Definisi

Menentukan matriks 5 x 5 yang berisi koordinat untuk ruang RGBAW. Beberapa metode kelas ImageAttributes 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.

WarnaWarna

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

  1. Menginisialisasi objek ColorMatrix.

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

  3. Teruskan objek ImageAttributes ke metode DrawImage objek Graphics.

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

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 Pewarnaan Ulang

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

Matriks identitas 5×5 (ditunjukkan dalam ilustrasi berikut) memiliki 1s pada diagonal dan 0-an 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 Pewarnaan 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 kelas ImageAttributes menyesuaikan warna gambar dengan menggunakan matriks warna. Kelas ini tidak dapat diwariskan.

ColorMatrix(Single[][])

Menginisialisasi instans baru kelas ColorMatrix menggunakan elemen dalam matriks yang ditentukan newColorMatrix.

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 0 kolom ColorMatrixini.

Matrix01

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

Matrix02

Mendapatkan atau mengatur elemen pada baris 0 (nol) dan kolom kedua ColorMatrixini.

Matrix03

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

Matrix04

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

Matrix10

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

Matrix11

Mendapatkan atau mengatur elemen pada baris pertama dan kolom pertama ColorMatrixini.

Matrix12

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

Matrix13

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

Matrix14

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

Matrix20

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

Matrix21

Mendapatkan atau mengatur elemen pada baris kedua dan kolom pertama ColorMatrixini.

Matrix22

Mendapatkan atau mengatur elemen pada baris kedua dan kolom kedua dari ColorMatrixini .

Matrix23

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

Matrix24

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

Matrix30

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

Matrix31

Mendapatkan atau mengatur elemen pada baris ketiga dan kolom pertama ColorMatrixini .

Matrix32

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

Matrix33

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

Matrix34

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

Matrix40

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

Matrix41

Mendapatkan atau mengatur elemen pada baris keempat dan kolom pertama ColorMatrixini.

Matrix42

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

Matrix43

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

Matrix44

Mendapatkan atau mengatur elemen pada baris keempat dan kolom keempat dari ColorMatrixini.

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 Type instans saat ini.

(Diperoleh dari Object)
MemberwiseClone()

Membuat salinan dangkal dari Objectsaat ini.

(Diperoleh dari Object)
ToString()

Mengembalikan string yang mewakili objek saat ini.

(Diperoleh dari Object)

Berlaku untuk

Lihat juga