ColorMatrix Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Definisce una matrice 5x5 contenente le coordinate per lo spazio RGBAW. Nella classe ImageAttributes sono inclusi diversi metodi che consentono di regolare i colori delle immagini mediante una matrice di colori. La classe non può essere ereditata.
public ref class ColorMatrix sealed
public sealed class ColorMatrix
type ColorMatrix = class
Public NotInheritable Class ColorMatrix
- Ereditarietà
-
ColorMatrix
Esempio
L'esempio seguente accetta un'immagine che corrisponde a un colore (0.2, 0.0, 0.4, 1.0) e applica la trasformazione descritta nei paragrafi precedenti.
La figura seguente mostra l'immagine originale a sinistra e l'immagine trasformata a destra.
Il codice nell'esempio seguente usa la procedura seguente per eseguire la ricolorazione:
Inizializzare un ColorMatrix oggetto.
Create un ImageAttributes oggetto e passare l'oggetto ColorMatrix al SetColorMatrix metodo dell'oggettoImageAttributes.
Passare l'oggetto ImageAttributesDrawImage al metodo di un Graphics oggetto.
L'esempio precedente è progettato per l'uso con Windows Forms e richiede PaintEventArgse
, che è un parametro del Paint gestore eventi
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)
Commenti
I coefficienti di matrice costituiscono una trasformazione lineare 5 x 5 usata per trasformare i valori omogenei di ARGB. Ad esempio, un vettore ARGB è rappresentato come rosso, verde, blu, alfa e w, dove w è sempre 1.
Si supponga, ad esempio, di voler iniziare con il colore (0.2, 0.0, 0.4, 1.0) e applicare le trasformazioni seguenti:
Doppio componente rosso
Aggiungere 0.2 ai componenti rossi, verdi e blu
La moltiplicazione della matrice seguente eseguirà la coppia di trasformazioni nell'ordine elencato.
Gli elementi di una matrice di colori vengono indicizzati (in base zero) per riga e quindi colonna. Ad esempio, la voce nella quinta riga e la terza colonna della matrice M viene denotata da M[4][2].
La matrice di identità 5×5 (illustrata nella figura seguente) ha 1s sulla diagonale e 0 ovunque. Se si moltiplica un vettore di colore in base alla matrice di identità, il vettore di colore non cambia. Un modo pratico per formare la matrice di una trasformazione colore consiste nell'iniziare con la matrice di identità e apportare una piccola modifica che produce la trasformazione desiderata.
Per una discussione più dettagliata delle matrici e delle trasformazioni, vedere Sistemi di coordinate e trasformazioni.
Costruttori
ColorMatrix() |
Inizializza una nuova istanza della classe ColorMatrix. |
ColorMatrix(ReadOnlySpan<Single>) |
Definisce una matrice 5x5 contenente le coordinate per lo spazio RGBAW. Nella classe ImageAttributes sono inclusi diversi metodi che consentono di regolare i colori delle immagini mediante una matrice di colori. La classe non può essere ereditata. |
ColorMatrix(Single[][]) |
Inizializza una nuova istanza della classe ColorMatrix utilizzando gli elementi della matrice |
Proprietà
Item[Int32, Int32] |
Ottiene o imposta l'elemento alla riga e colonna specificate dell'oggetto ColorMatrix. |
Matrix00 |
Ottiene o imposta l'elemento alla riga 0 (zero) e alla colonna 0 dell'oggetto ColorMatrix. |
Matrix01 |
Ottiene o imposta l'elemento alla riga 0 (zero) e alla prima colonna dell'oggetto ColorMatrix. |
Matrix02 |
Ottiene o imposta l'elemento alla riga 0 (zero) e alla seconda colonna dell'oggetto ColorMatrix. |
Matrix03 |
Ottiene o imposta l'elemento alla riga 0 (zero) e alla terza colonna dell'oggetto ColorMatrix. Rappresenta il componente alfa. |
Matrix04 |
Ottiene o imposta l'elemento alla riga 0 (zero) e alla quarta colonna dell'oggetto ColorMatrix. |
Matrix10 |
Ottiene o imposta l'elemento alla prima riga e alla colonna 0 (zero) dell'oggetto ColorMatrix. |
Matrix11 |
Ottiene o imposta l'elemento alla prima riga e alla prima colonna dell'oggetto ColorMatrix. |
Matrix12 |
Ottiene o imposta l'elemento alla prima riga e alla seconda colonna dell'oggetto ColorMatrix. |
Matrix13 |
Ottiene o imposta l'elemento alla prima riga e alla terza colonna dell'oggetto ColorMatrix. Rappresenta il componente alfa. |
Matrix14 |
Ottiene o imposta l'elemento alla prima riga e alla quarta colonna dell'oggetto ColorMatrix. |
Matrix20 |
Ottiene o imposta l'elemento alla seconda riga e alla colonna 0 (zero) dell'oggetto ColorMatrix. |
Matrix21 |
Ottiene o imposta l'elemento alla seconda riga e alla prima colonna dell'oggetto ColorMatrix. |
Matrix22 |
Ottiene o imposta l'elemento alla seconda riga e alla seconda colonna dell'oggetto ColorMatrix. |
Matrix23 |
Ottiene o imposta l'elemento alla seconda riga e alla terza colonna dell'oggetto ColorMatrix. |
Matrix24 |
Ottiene o imposta l'elemento alla seconda riga e alla quarta colonna dell'oggetto ColorMatrix. |
Matrix30 |
Ottiene o imposta l'elemento alla terza riga e alla colonna 0 (zero) dell'oggetto ColorMatrix. |
Matrix31 |
Ottiene o imposta l'elemento alla terza riga e alla prima colonna dell'oggetto ColorMatrix. |
Matrix32 |
Ottiene o imposta l'elemento alla terza riga e alla seconda colonna dell'oggetto ColorMatrix. |
Matrix33 |
Ottiene o imposta l'elemento alla terza riga e alla terza colonna dell'oggetto ColorMatrix. Rappresenta il componente alfa. |
Matrix34 |
Ottiene o imposta l'elemento alla terza riga e alla quarta colonna dell'oggetto ColorMatrix. |
Matrix40 |
Ottiene o imposta l'elemento alla quarta riga e alla colonna 0 (zero) dell'oggetto ColorMatrix. |
Matrix41 |
Ottiene o imposta l'elemento alla quarta riga e alla prima colonna dell'oggetto ColorMatrix. |
Matrix42 |
Ottiene o imposta l'elemento alla quarta riga e alla seconda colonna dell'oggetto ColorMatrix. |
Matrix43 |
Ottiene o imposta l'elemento alla quarta riga e alla terza colonna dell'oggetto ColorMatrix. Rappresenta il componente alfa. |
Matrix44 |
Ottiene o imposta l'elemento alla quarta riga e alla quarta colonna dell'oggetto ColorMatrix. |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Si applica a
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per