ColorMatrix Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Definieert een matrix van 5 x 5 die de coördinaten voor de RGBAW-ruimte bevat. Verschillende methoden van de ImageAttributes klasse passen afbeeldingskleuren aan met behulp van een kleurenmatrix. Deze klasse kan niet worden overgenomen.
public ref class ColorMatrix sealed
public sealed class ColorMatrix
type ColorMatrix = class
Public NotInheritable Class ColorMatrix
- Overname
-
ColorMatrix
Voorbeelden
In het volgende voorbeeld wordt een afbeelding met alle kleuren (0.2, 0.0, 0.4, 1.0) gebruikt en wordt de transformatie toegepast die in de voorgaande alinea's wordt beschreven.
In de volgende afbeelding ziet u de oorspronkelijke afbeelding aan de linkerkant en de getransformeerde afbeelding aan de rechterkant.
In de code in het volgende voorbeeld worden de volgende stappen gebruikt om de andere kleuren uit te voeren:
Initialiseer een ColorMatrix object.
Maak een ImageAttributes object en geef het ColorMatrix object door aan de SetColorMatrix methode van het ImageAttributes object.
Geef het ImageAttributes object door aan de DrawImage methode van een Graphics object.
Het voorgaande voorbeeld is ontworpen voor gebruik met Windows Forms en vereist PaintEventArgse, een parameter van de Paint gebeurtenis-handler
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)
Opmerkingen
De matrixcoëfficiënten vormen een lineaire transformatie van 5 x 5 die wordt gebruikt voor het transformeren van HOMOGENE ARGB-waarden. Een ARGB-vector wordt bijvoorbeeld weergegeven als rood, groen, blauw, alfa en w, waarbij w altijd 1 is.
Stel dat u wilt beginnen met de kleur (0.2, 0.0, 0.4, 1.0) en de volgende transformaties toepassen:
Het rode onderdeel verdubbelen
Voeg 0,2 toe aan de rode, groene en blauwe componenten
Met de volgende matrixvermeniging wordt het paar transformaties in de vermelde volgorde uitgevoerd.
wijzigen
De elementen van een kleurmatrix worden geïndexeerd (op nul gebaseerd) op rij en vervolgens kolom. De vermelding in de vijfde rij en de derde kolom van matrix M wordt bijvoorbeeld aangeduid door M[4][2].
De identiteitsmatrix 5×5 (weergegeven in de volgende afbeelding) heeft 1s op de diagonale en 0s overal anders. Als u een kleurvector vermenigvuldigt met de identiteitsmatrix, verandert de kleurvector niet. Een handige manier om de matrix van een kleurtransformatie te vormen, is door te beginnen met de identiteitsmatrix en een kleine wijziging aan te brengen die de gewenste transformatie produceert.
wijzigen
Zie Coördinaatsystemen en transformaties voor een gedetailleerdere bespreking van matrices en transformaties.
Constructors
| Name | Description |
|---|---|
| ColorMatrix() |
Initialiseert een nieuw exemplaar van de ColorMatrix klasse. |
| ColorMatrix(ReadOnlySpan<Single>) |
Initialiseert een nieuw exemplaar van de ColorMatrix klasse met de elementen in de opgegeven matrix. |
| ColorMatrix(Single[][]) |
Initialiseert een nieuw exemplaar van de ColorMatrix klasse met behulp van de elementen in de opgegeven matrix |
Eigenschappen
| Name | Description |
|---|---|
| Item[Int32, Int32] |
Hiermee haalt of stelt u het element in de opgegeven rij en kolom in de ColorMatrix. |
| Matrix00 |
Hiermee haalt u het element op in de rij 0 (nul) en 0 kolom van dit ColorMatrixelement. |
| Matrix01 |
Hiermee haalt u het element op in de rij 0 (nul) en de eerste kolom van dit ColorMatrixelement. |
| Matrix02 |
Hiermee haalt u het element op in de rij 0 (nul) en de tweede kolom hiervan ColorMatrix. |
| Matrix03 |
Hiermee wordt het element op de rij 0 (nul) en de derde kolom van dit ColorMatrixelement ophaalt of ingesteld. Vertegenwoordigt het alfa-onderdeel. |
| Matrix04 |
Hiermee wordt het element op de rij 0 (nul) en de vierde kolom van dit ColorMatrixelement ophaalt of ingesteld. |
| Matrix10 |
Hiermee haalt u het element op in de eerste rij en 0 (nul) van dit ColorMatrixelement. |
| Matrix11 |
Hiermee haalt u het element op de eerste rij en de eerste kolom van deze op of stelt u het in ColorMatrix. |
| Matrix12 |
Hiermee haalt u het element op de eerste rij en tweede kolom van deze op of stelt u het in ColorMatrix. |
| Matrix13 |
Hiermee haalt u het element op de eerste rij en de derde kolom van deze op of stelt u het in ColorMatrix. Vertegenwoordigt het alfa-onderdeel. |
| Matrix14 |
Hiermee haalt u het element op de eerste rij en vierde kolom van dit element op of stelt u het in ColorMatrix. |
| Matrix20 |
Hiermee wordt het element op de tweede rij en 0 (nul) van dit ColorMatrixelement ophaalt of ingesteld. |
| Matrix21 |
Hiermee haalt u het element op de tweede rij en de eerste kolom van deze op of stelt u het in ColorMatrix. |
| Matrix22 |
Hiermee haalt u het element op de tweede rij en de tweede kolom van deze op of stelt u het in ColorMatrix. |
| Matrix23 |
Hiermee haalt u het element op de tweede rij en de derde kolom van dit element op of stelt u het in ColorMatrix. |
| Matrix24 |
Hiermee haalt u het element op de tweede rij en vierde kolom van deze op of stelt u het ColorMatrixin. |
| Matrix30 |
Hiermee wordt het element op de derde rij en 0 (nul) van dit ColorMatrixelement ophaalt of ingesteld. |
| Matrix31 |
Hiermee haalt u het element op de derde rij en de eerste kolom van dit element op of stelt u dit ColorMatrixin. |
| Matrix32 |
Hiermee haalt u het element op de derde rij en de tweede kolom van deze op of stelt u het in ColorMatrix. |
| Matrix33 |
Hiermee wordt het element op de derde rij en de derde kolom van dit ColorMatrixelement ophaalt of ingesteld. Vertegenwoordigt het alfa-onderdeel. |
| Matrix34 |
Hiermee wordt het element op de derde rij en vierde kolom van dit ColorMatrixelement ophaalt of ingesteld. |
| Matrix40 |
Hiermee haalt u het element op in de vierde rij en 0 (nul) van dit ColorMatrixelement. |
| Matrix41 |
Hiermee wordt het element op de vierde rij en de eerste kolom van dit ColorMatrixelement ophaalt of ingesteld. |
| Matrix42 |
Hiermee haalt u het element op in de vierde rij en tweede kolom van dit element of stelt u het in ColorMatrix. |
| Matrix43 |
Hiermee haalt u het element op in de vierde rij en derde kolom van dit element of stelt u het in ColorMatrix. Vertegenwoordigt het alfa-onderdeel. |
| Matrix44 |
Hiermee haalt u het element op in de vierde rij en vierde kolom van dit element of stelt u het in ColorMatrix. |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetType() |
Hiermee haalt u de Type huidige instantie op. (Overgenomen van Object) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Retourneert een tekenreeks die het huidige object vertegenwoordigt. (Overgenomen van Object) |