ImageAttributes.SetColorMatrix Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger färgjusteringsmatrisen.
Överlagringar
| Name | Description |
|---|---|
| SetColorMatrix(ColorMatrix) |
Anger färgjusteringsmatrisen för standardkategorin. |
| SetColorMatrix(ColorMatrix, ColorMatrixFlag) |
Anger färgjusteringsmatrisen för standardkategorin. |
| SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType) |
Anger färgjusteringsmatrisen för en angiven kategori. |
SetColorMatrix(ColorMatrix)
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
Anger färgjusteringsmatrisen för standardkategorin.
public:
void SetColorMatrix(System::Drawing::Imaging::ColorMatrix ^ newColorMatrix);
public void SetColorMatrix(System.Drawing.Imaging.ColorMatrix newColorMatrix);
member this.SetColorMatrix : System.Drawing.Imaging.ColorMatrix -> unit
Public Sub SetColorMatrix (newColorMatrix As ColorMatrix)
Parametrar
- newColorMatrix
- ColorMatrix
Färgjusteringsmatrisen.
Exempel
Följande kodexempel är utformat för användning med Windows Forms och kräver PaintEventArgse, vilket är en parameter för händelsehanteraren Paint. Koden utför följande åtgärder:
Skapar en rektangelbild som har alla färgvärden inställda på 128, vilket ger en rektangel som är fylld med en solid medelgrå färg. Koden ritar sedan den här rektangelbilden till skärmen.
Skapar en ColorMatrix och anger dess Matrix plats till 1,75, vilket framhäver bildens röda komponent.
Skapar ett ImageAttributes objekt och anropar SetColorMatrix metoden.
Ritar bilden (en andra rektangel) till skärmen med hjälp av just-uppsättningen ColorMatrix i ImageAttributes objektet.
Observera att den andra rektangeln har färgen röd framhävd.
private:
void SetColorMatrixExample( PaintEventArgs^ e )
{
// Create a rectangle image with all colors set to 128 (medium
// gray).
Bitmap^ myBitmap = gcnew Bitmap( 50,50,PixelFormat::Format32bppArgb );
Graphics^ g = Graphics::FromImage( myBitmap );
g->FillRectangle( gcnew SolidBrush( Color::FromArgb( 255, 128, 128, 128 ) ), Rectangle(0,0,50,50) );
myBitmap->Save( "Rectangle1.jpg" );
// Open an Image file and draw it to the screen.
Image^ myImage = Image::FromFile( "Rectangle1.jpg" );
e->Graphics->DrawImage( myImage, 20, 20 );
// Initialize the color matrix.
ColorMatrix^ myColorMatrix = gcnew ColorMatrix;
// Red
myColorMatrix->Matrix00 = 1.75f;
// Green
myColorMatrix->Matrix11 = 1.00f;
// Blue
myColorMatrix->Matrix22 = 1.00f;
// alpha
myColorMatrix->Matrix33 = 1.00f;
// w
myColorMatrix->Matrix44 = 1.00f;
// Create an ImageAttributes object and set the color matrix.
ImageAttributes^ imageAttr = gcnew ImageAttributes;
imageAttr->SetColorMatrix( myColorMatrix );
// Draw the image using the color matrix.
Rectangle rect = Rectangle(100,20,200,200);
e->Graphics->DrawImage( myImage, rect, 0, 0, 200, 200, GraphicsUnit::Pixel, imageAttr );
}
private void SetColorMatrixExample(PaintEventArgs e)
{
// Create a rectangle image with all colors set to 128 (medium
// gray).
Bitmap myBitmap = new Bitmap(50, 50, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(myBitmap);
g.FillRectangle(new SolidBrush(Color.FromArgb(255, 128, 128, 128)),
new Rectangle(0, 0, 50, 50));
myBitmap.Save("Rectangle1.jpg");
// Open an Image file and draw it to the screen.
Image myImage = Image.FromFile("Rectangle1.jpg");
e.Graphics.DrawImage(myImage, 20, 20);
// Initialize the color matrix.
ColorMatrix myColorMatrix = new ColorMatrix();
// Red
myColorMatrix.Matrix00 = 1.75f;
// Green
myColorMatrix.Matrix11 = 1.00f;
// Blue
myColorMatrix.Matrix22 = 1.00f;
// alpha
myColorMatrix.Matrix33 = 1.00f;
// w
myColorMatrix.Matrix44 = 1.00f;
// Create an ImageAttributes object and set the color matrix.
ImageAttributes imageAttr = new ImageAttributes();
imageAttr.SetColorMatrix(myColorMatrix);
// Draw the image using the color matrix.
Rectangle rect = new Rectangle(100, 20, 200, 200);
e.Graphics.DrawImage(myImage, rect, 0, 0, 200, 200,
GraphicsUnit.Pixel, imageAttr);
}
Public Sub SetColorMatrixExample(ByVal e As PaintEventArgs)
' Create a rectangle image with all colors set to 128 (medium
' gray).
Dim myBitmap As New Bitmap(50, 50, PixelFormat.Format32bppArgb)
Dim g As Graphics = Graphics.FromImage(myBitmap)
g.FillRectangle(New SolidBrush(Color.FromArgb(255, 128, 128, _
128)), New Rectangle(0, 0, 50, 50))
myBitmap.Save("Rectangle1.jpg")
' Open an Image file and draw it to the screen.
Dim myImage As Image = Image.FromFile("Rectangle1.jpg")
e.Graphics.DrawImage(myImage, 20, 20)
' Initialize the color matrix.
Dim myColorMatrix As New ColorMatrix
myColorMatrix.Matrix00 = 1.75F
' Red
myColorMatrix.Matrix11 = 1.0F
' Green
myColorMatrix.Matrix22 = 1.0F
' Blue
myColorMatrix.Matrix33 = 1.0F
' alpha
myColorMatrix.Matrix44 = 1.0F
' w
' Create an ImageAttributes object and set the color matrix.
Dim imageAttr As New ImageAttributes
imageAttr.SetColorMatrix(myColorMatrix)
' Draw the image using the color matrix.
Dim rect As New Rectangle(100, 20, 200, 200)
e.Graphics.DrawImage(myImage, rect, 0, 0, 200, 200, _
GraphicsUnit.Pixel, imageAttr)
' Image
End Sub
'SetColorMatrixExample
Kommentarer
Ett ImageAttributes objekt har färg- och gråskaleinställningar för fem justeringskategorier: standard, bitmapp, pensel, penna och text. Du kan till exempel ange en färgjusteringsmatris för standardkategorin, en annan färgjusteringsmatris för bitmappskategorin och fortfarande en annan färgjusteringsmatris för pennkategorin.
Standardinställningarna för färgjustering och gråskalejustering gäller för alla kategorier som inte har egna justeringsinställningar. Om du till exempel aldrig anger några justeringsinställningar för pennkategorin gäller standardinställningarna för pennkategorin.
ImageAttributes.SetColorMatrix(ColorMatrix) Att anropa metoden motsvarar att anropa ImageAttributes.SetColorMatrix(ColorMatrix, ColorMatrixFlag) metoden och skicka ColorMatrixFlag.Default för parameternflags.
ColorMatrixFlag.Default anger att alla färger (inklusive gråtoner) justeras av färgjusteringsmatrisen
Se även
Gäller för
SetColorMatrix(ColorMatrix, ColorMatrixFlag)
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
Anger färgjusteringsmatrisen för standardkategorin.
public:
void SetColorMatrix(System::Drawing::Imaging::ColorMatrix ^ newColorMatrix, System::Drawing::Imaging::ColorMatrixFlag flags);
public void SetColorMatrix(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrixFlag flags);
member this.SetColorMatrix : System.Drawing.Imaging.ColorMatrix * System.Drawing.Imaging.ColorMatrixFlag -> unit
Public Sub SetColorMatrix (newColorMatrix As ColorMatrix, flags As ColorMatrixFlag)
Parametrar
- newColorMatrix
- ColorMatrix
Färgjusteringsmatrisen.
- flags
- ColorMatrixFlag
Ett element som ColorMatrixFlag anger vilken typ av bild och färg som ska påverkas av färgjusteringsmatrisen.
Exempel
Ett kodexempel finns i SetColorMatrix(ColorMatrix) metoden.
Kommentarer
Ett ImageAttributes objekt har färg- och gråskaleinställningar för fem justeringskategorier: standard, bitmapp, pensel, penna och text. Du kan till exempel ange en färgjusteringsmatris för standardkategorin, en annan färgjusteringsmatris för bitmappskategorin och fortfarande en annan färgjusteringsmatris för pennkategorin.
Standardinställningarna för färgjustering och gråskalejustering gäller för alla kategorier som inte har egna justeringsinställningar. Om du till exempel aldrig anger några justeringsinställningar för pennkategorin gäller standardinställningarna för pennkategorin.
Se även
Gäller för
SetColorMatrix(ColorMatrix, ColorMatrixFlag, ColorAdjustType)
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
- Källa:
- ImageAttributes.cs
Anger färgjusteringsmatrisen för en angiven kategori.
public:
void SetColorMatrix(System::Drawing::Imaging::ColorMatrix ^ newColorMatrix, System::Drawing::Imaging::ColorMatrixFlag mode, System::Drawing::Imaging::ColorAdjustType type);
public void SetColorMatrix(System.Drawing.Imaging.ColorMatrix newColorMatrix, System.Drawing.Imaging.ColorMatrixFlag mode, System.Drawing.Imaging.ColorAdjustType type);
member this.SetColorMatrix : System.Drawing.Imaging.ColorMatrix * System.Drawing.Imaging.ColorMatrixFlag * System.Drawing.Imaging.ColorAdjustType -> unit
Public Sub SetColorMatrix (newColorMatrix As ColorMatrix, mode As ColorMatrixFlag, type As ColorAdjustType)
Parametrar
- newColorMatrix
- ColorMatrix
Färgjusteringsmatrisen.
- mode
- ColorMatrixFlag
Ett element som ColorMatrixFlag anger vilken typ av bild och färg som ska påverkas av färgjusteringsmatrisen.
- type
- ColorAdjustType
Ett element i ColorAdjustType som anger den kategori som färgjusteringsmatrisen har angetts för.
Exempel
I följande kodexempel visas hur du använder SetColorMatrix metoden. Om du vill köra det här exemplet klistrar du in koden i ett Windows formulär och anropar RotateColors från formulärets händelsehanteringsmetod Paint och skickar e som PaintEventArgs.
private void RotateColors(PaintEventArgs e)
{
Bitmap image = new Bitmap("RotationInput.bmp");
ImageAttributes imageAttributes = new ImageAttributes();
int width = image.Width;
int height = image.Height;
float degrees = 60f;
double r = degrees * System.Math.PI / 180; // degrees to radians
float[][] colorMatrixElements = {
new float[] {(float)System.Math.Cos(r), (float)System.Math.Sin(r), 0, 0, 0},
new float[] {(float)-System.Math.Sin(r), (float)-System.Math.Cos(r), 0, 0, 0},
new float[] {0, 0, 2, 0, 0},
new float[] {0, 0, 0, 1, 0},
new float[] {0, 0, 0, 0, 1}};
ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);
imageAttributes.SetColorMatrix(
colorMatrix,
ColorMatrixFlag.Default,
ColorAdjustType.Bitmap);
e.Graphics.DrawImage(image, 10, 10, width, height);
e.Graphics.DrawImage(
image,
new Rectangle(150, 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);
}
Private Sub RotateColors(ByVal e As PaintEventArgs)
Dim image As Bitmap = New Bitmap("RotationInput.bmp")
Dim imageAttributes As New ImageAttributes()
Dim width As Integer = image.Width
Dim height As Integer = image.Height
Dim degrees As Single = 60.0F
Dim r As Double = degrees * System.Math.PI / 180 ' degrees to radians
Dim colorMatrixElements As Single()() = { _
New Single() {CSng(System.Math.Cos(r)), _
CSng(System.Math.Sin(r)), 0, 0, 0}, _
New Single() {CSng(-System.Math.Sin(r)), _
CSng(-System.Math.Cos(r)), 0, 0, 0}, _
New Single() {0, 0, 2, 0, 0}, _
New Single() {0, 0, 0, 1, 0}, _
New Single() {0, 0, 0, 0, 1}}
Dim colorMatrix As New ColorMatrix(colorMatrixElements)
imageAttributes.SetColorMatrix( _
colorMatrix, _
ColorMatrixFlag.Default, _
ColorAdjustType.Bitmap)
e.Graphics.DrawImage(image, 10, 10, width, height)
' Pass in the destination rectangle (2nd argument), the upper-left corner
' (3rd and 4th arguments), width (5th argument), and height (6th
' argument) of the source rectangle.
e.Graphics.DrawImage( _
image, _
New Rectangle(150, 10, width, height), _
0, 0, _
width, _
height, _
GraphicsUnit.Pixel, _
imageAttributes)
End Sub
Kommentarer
Ett ImageAttributes objekt har färg- och gråskaleinställningar för fem justeringskategorier: standard, bitmapp, pensel, penna och text. Du kan till exempel ange en färgjusteringsmatris för standardkategorin, en annan färgjusteringsmatris för bitmappskategorin och fortfarande en annan färgjusteringsmatris för pennkategorin.
Standardinställningarna för färgjustering och gråskalejustering gäller för alla kategorier som inte har egna justeringsinställningar. Om du till exempel aldrig anger några justeringsinställningar för pennkategorin gäller standardinställningarna för pennkategorin.
Så snart du anger en inställning för färgjustering eller gråskalejustering för en viss kategori gäller standardjusteringsinställningarna inte längre för den kategorin. Anta till exempel att du anger en samling justeringsinställningar för standardkategorin. Om du anger färgjusteringsmatrisen för pennkategorin genom att skicka Pen till SetColorMatrix metoden gäller ingen av standardjusteringsinställningarna för pennor.