ColorMatrix Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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.
Kode dalam contoh berikut menggunakan langkah-langkah berikut untuk melakukan pewarnaan ulang:
Menginisialisasi ColorMatrix objek.
Buat ImageAttributes objek dan teruskan ColorMatrix objek ke SetColorMatrix metode ImageAttributes objek.
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:
Menggandakan komponen merah
Tambahkan 0,2 ke komponen merah, hijau, dan biru
Perkalian matriks berikut akan melakukan pasangan transformasi dalam urutan yang tercantum.
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.
Untuk diskusi matriks dan transformasi yang lebih rinci, lihat Sistem Koordinat dan Transformasi.
Konstruktor
| Nama | Deskripsi |
|---|---|
| ColorMatrix() |
Menginisialisasi instans baru dari kelas ColorMatrix. |
| ColorMatrix(ReadOnlySpan<Single>) |
Menginisialisasi instans ColorMatrix baru kelas dengan elemen dalam matriks yang ditentukan. |
| ColorMatrix(Single[][]) |
Menginisialisasi instans ColorMatrix baru kelas menggunakan elemen dalam matriks |
Properti
| Nama | Deskripsi |
|---|---|
| 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 ini ColorMatrix. |
| Matrix01 |
Mendapatkan atau mengatur elemen pada baris 0 (nol) dan kolom pertama dari 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) 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
| Nama | Deskripsi |
|---|---|
| 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) |