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 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.
Warna
Kode dalam contoh berikut menggunakan langkah-langkah berikut untuk melakukan pewarnaan ulang:
Menginisialisasi objek ColorMatrix.
Buat objek ImageAttributes dan teruskan objek ColorMatrix ke metode SetColorMatrix objek ImageAttributes.
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:
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
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 |
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) |