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.
ImageAttributes Create 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 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.
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 |
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk