ColorMatrix Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
RGBAW alanının koordinatlarını içeren 5 x 5 matrisini tanımlar. sınıfının çeşitli yöntemleri ImageAttributes , renk matrisi kullanarak görüntü renklerini ayarlar. Bu sınıf devralınamaz.
public ref class ColorMatrix sealed
public sealed class ColorMatrix
type ColorMatrix = class
Public NotInheritable Class ColorMatrix
- Devralma
-
ColorMatrix
Örnekler
Aşağıdaki örnek, tümü bir renk (0.2, 0.0, 0.4, 1.0) olan bir görüntü alır ve önceki paragraflarda açıklanan dönüşümü uygular.
Aşağıdaki çizimde, soldaki özgün resim ve sağ tarafta dönüştürülmüş görüntü gösterilmektedir.
Aşağıdaki örnekteki kod, yeniden renklendirmeyi gerçekleştirmek için aşağıdaki adımları kullanır:
Bir ColorMatrix nesneyi başlatın.
Bir ImageAttributes nesneyi İçerik Oluşturucu ve nesnesini nesnesinin SetColorMatrix yöntemine ImageAttributes geçirinColorMatrix.
ImageAttributes nesnesini nesnesinin DrawImageGraphics yöntemine geçirin.
Yukarıdaki örnek, Windows Forms ile kullanılmak üzere tasarlanmıştır ve olay işleyicisinin Paint parametresi olan öğesini gerektirir.PaintEventArgse
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)
Açıklamalar
Matris katsayıları, ARGB homojen değerlerini dönüştürmek için kullanılan 5 x 5 doğrusal dönüşümü oluşturur. Örneğin ARGB vektörleri kırmızı, yeşil, mavi, alfa ve w olarak temsil edilir ve w her zaman 1 olur.
Örneğin, renkle (0.2, 0.0, 0.4, 1.0) başlamak istediğinizi ve aşağıdaki dönüştürmeleri uygulamak istediğinizi varsayalım:
Kırmızı bileşenin iki katı
Kırmızı, yeşil ve mavi bileşenlere 0,2 ekleyin
Aşağıdaki matris çarpması, dönüşüm çiftini listelenen sırayla gerçekleştirir.
Renk matrisinin öğeleri satıra ve sonra sütuna göre dizinlenir (sıfır tabanlı). Örneğin, M matrisinin beşinci satırındaki ve üçüncü sütunundaki giriş M[4][2] tarafından belirtilir.
5×5 kimlik matrisinin (aşağıdaki çizimde gösterilmiştir) çapraz üzerinde 1'ler, diğer her yerde 0'lar bulunur. Renk vektörlerini kimlik matrisi ile çarpıyorsanız, renk vektöru değişmez. Renk dönüştürme matrisini oluşturmanın kullanışlı bir yolu, kimlik matrisiyle başlamak ve istenen dönüşümü üreten küçük bir değişiklik yapmaktır.
Matrisler ve dönüşümler hakkında daha ayrıntılı bilgi için bkz. Koordinat Sistemleri ve Dönüşümler.
Oluşturucular
ColorMatrix() |
ColorMatrix sınıfının yeni bir örneğini başlatır. |
ColorMatrix(ReadOnlySpan<Single>) |
RGBAW alanının koordinatlarını içeren 5 x 5 matrisini tanımlar. sınıfının çeşitli yöntemleri ImageAttributes , renk matrisi kullanarak görüntü renklerini ayarlar. Bu sınıf devralınamaz. |
ColorMatrix(Single[][]) |
Belirtilen matristeki ColorMatrix |
Özellikler
Item[Int32, Int32] |
öğesinde belirtilen satır ve sütunda ColorMatrixöğesini alır veya ayarlar. |
Matrix00 |
öğesini bu ColorMatrixöğesinin 0 (sıfır) satırında ve 0 sütununda alır veya ayarlar. |
Matrix01 |
öğesini bu ColorMatrixöğesinin 0 (sıfır) satırında ve ilk sütununda alır veya ayarlar. |
Matrix02 |
öğesini bu ColorMatrixöğesinin 0 (sıfır) satırında ve ikinci sütununda alır veya ayarlar. |
Matrix03 |
öğesini bu ColorMatrixöğesinin 0 (sıfır) satırında ve üçüncü sütununda alır veya ayarlar. Alfa bileşenini temsil eder. |
Matrix04 |
öğesini bu ColorMatrixöğesinin 0 (sıfır) satırında ve dördüncü sütununda alır veya ayarlar. |
Matrix10 |
öğesini bu ColorMatrixöğesinin ilk satırında ve 0 (sıfır) sütununda alır veya ayarlar. |
Matrix11 |
öğesini bu ColorMatrixöğesinin ilk satırında ve ilk sütununda alır veya ayarlar. |
Matrix12 |
öğesini bu ColorMatrixöğesinin ilk satırında ve ikinci sütununda alır veya ayarlar. |
Matrix13 |
öğesini bu ColorMatrixöğesinin ilk satırında ve üçüncü sütununda alır veya ayarlar. Alfa bileşenini temsil eder. |
Matrix14 |
öğesini bu ColorMatrixöğesinin ilk satırında ve dördüncü sütununda alır veya ayarlar. |
Matrix20 |
öğesini bu ColorMatrixöğesinin ikinci satırında ve 0 (sıfır) sütununda alır veya ayarlar. |
Matrix21 |
öğesini bu ColorMatrixöğesinin ikinci satırında ve ilk sütununda alır veya ayarlar. |
Matrix22 |
öğesini bu ColorMatrixöğesinin ikinci satırında ve ikinci sütununda alır veya ayarlar. |
Matrix23 |
öğesini bu ColorMatrixöğesinin ikinci satırında ve üçüncü sütununda alır veya ayarlar. |
Matrix24 |
öğesini bu ColorMatrixöğesinin ikinci satırında ve dördüncü sütununda alır veya ayarlar. |
Matrix30 |
Öğesini bu ColorMatrixöğesinin üçüncü satırında ve 0 (sıfır) sütununda alır veya ayarlar. |
Matrix31 |
Öğesini bu ColorMatrixöğesinin üçüncü satırında ve ilk sütununda alır veya ayarlar. |
Matrix32 |
öğesini bu ColorMatrixöğesinin üçüncü satırında ve ikinci sütununda alır veya ayarlar. |
Matrix33 |
öğesini bu ColorMatrixöğesinin üçüncü satırında ve üçüncü sütununda alır veya ayarlar. Alfa bileşenini temsil eder. |
Matrix34 |
Öğesini bu ColorMatrixöğesinin üçüncü satırında ve dördüncü sütununda alır veya ayarlar. |
Matrix40 |
Öğesini bu ColorMatrixöğesinin dördüncü satırında ve 0 (sıfır) sütununda alır veya ayarlar. |
Matrix41 |
Öğesini bu ColorMatrixöğesinin dördüncü satırında ve ilk sütununda alır veya ayarlar. |
Matrix42 |
Öğesini bu ColorMatrixöğesinin dördüncü satırında ve ikinci sütununda alır veya ayarlar. |
Matrix43 |
öğesini bu ColorMatrixöğesinin dördüncü satırında ve üçüncü sütununda alır veya ayarlar. Alfa bileşenini temsil eder. |
Matrix44 |
Öğesini bu ColorMatrixöğesinin dördüncü satırında ve dördüncü sütununda alır veya ayarlar. |
Yöntemler
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetType() |
Type Geçerli örneğini alır. (Devralındığı yer: Object) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli nesneyi temsil eden dizeyi döndürür. (Devralındığı yer: Object) |
Şunlara uygulanır
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin