Color.GetSaturation Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene el valor de saturación HSL (matiz-saturación-luminosidad) de esta estructura Color.
public:
float GetSaturation();
public float GetSaturation ();
member this.GetSaturation : unit -> single
Public Function GetSaturation () As Single
Devoluciones
La saturación de esta estructura Color. La saturación va de 0,0 a 1,0, donde 0,0 es la escala de grises y 1,0 es la saturación máxima.
Ejemplos
El ejemplo de código siguiente está diseñado para su uso con Windows Forms y requiere PaintEventArgse
, que es un parámetro del Paint controlador de eventos. El código realiza las siguientes acciones:
Crea una instancia de una Color estructura,
redShade
, que se usará para las comparaciones.Recorre en iteración los elementos de KnownColor enumeración para buscar todos los colores conocidos que tienen la misma saturación
redShade
que . Las iteraciones se finalizan cuando se encuentran 15 coincidencias o el valor del contador de bucle es mayor que el último KnownColor elemento.Durante cada iteración, guarda el KnownColor elemento (si coincide con los criterios) en una matriz.
Usa un pincel para pintar rectángulos.
El primer rectángulo se pinta el color representado por redShade
. Cada uno de los otros rectángulos se pinta un KnownColor que coincide con la saturación de redShade
.
void GetSatExample( PaintEventArgs^ e )
{
Graphics^ g = e->Graphics;
// Color structures. One is a variable used for temporary storage. The other
// is a constant used for comparisons.
Color someColor = Color::FromArgb( 0 );
Color redShade = Color::FromArgb( 255, 200, 0, 100 );
// Array to store KnownColor values that match the saturation of the
// redShade color.
array<KnownColor>^colorMatches = gcnew array<KnownColor>(15);
// Number of matches found.
int count = 0;
// Iterate through the KnownColor enums until 15 matches are found.
for ( KnownColor enumValue = (KnownColor)0; enumValue <= KnownColor::YellowGreen && count < 15; enumValue = enumValue + (KnownColor)1 )
{
someColor = Color::FromKnownColor( enumValue );
if ( someColor.GetSaturation() == redShade.GetSaturation() )
colorMatches[ count++ ] = enumValue;
}
// Display the redShade color and its argb value.
SolidBrush^ myBrush1 = gcnew SolidBrush( redShade );
System::Drawing::Font^ myFont = gcnew System::Drawing::Font( "Arial",12 );
int x = 20;
int y = 20;
someColor = redShade;
g->FillRectangle( myBrush1, x, y, 100, 30 );
g->DrawString( someColor.ToString(), myFont, Brushes::Black, (float)x + 120, (float)y );
// Iterate through the matches that were found and display each color that
// corresponds with the enum value in the array. also display the name of
// the KnownColor.
for ( int i = 0; i < count; i++ )
{
y += 40;
someColor = Color::FromKnownColor( colorMatches[ i ] );
myBrush1->Color = someColor;
g->FillRectangle( myBrush1, x, y, 100, 30 );
g->DrawString( someColor.ToString(), myFont, Brushes::Black, (float)x + 120, (float)y );
}
}
public void GetSatExample(PaintEventArgs e)
{
Graphics g = e.Graphics;
// Color structures. One is a variable used for temporary storage. The other
// is a constant used for comparisons.
Color someColor = Color.FromArgb(0);
Color redShade = Color.FromArgb(255, 200, 0, 100);
// Array to store KnownColor values that match the saturation of the
// redShade color.
KnownColor[] colorMatches = new KnownColor[15];
// Number of matches found.
int count = 0;
// Iterate through the KnownColor enums until 15 matches are found.
for (KnownColor enumValue = 0;
enumValue <= KnownColor.YellowGreen && count < 15; enumValue++)
{
someColor = Color.FromKnownColor(enumValue);
if (someColor.GetSaturation() == redShade.GetSaturation())
colorMatches[count++] = enumValue;
}
// Display the redShade color and its argb value.
SolidBrush myBrush1 = new SolidBrush(redShade);
Font myFont = new Font("Arial", 12);
int x = 20;
int y = 20;
someColor = redShade;
g.FillRectangle(myBrush1, x, y, 100, 30);
g.DrawString(someColor.ToString(), myFont, Brushes.Black, x + 120, y);
// Iterate through the matches that were found and display each color that
// corresponds with the enum value in the array. also display the name of
// the KnownColor.
for (int i = 0; i < count; i++)
{
y += 40;
someColor = Color.FromKnownColor(colorMatches[i]);
myBrush1.Color = someColor;
g.FillRectangle(myBrush1, x, y, 100, 30);
g.DrawString(someColor.ToString(), myFont, Brushes.Black, x + 120, y);
}
}
Public Sub GetSatExample(ByVal e As PaintEventArgs)
Dim g As Graphics = e.Graphics
' Color structures. One is used for temporary storage. The other
' is a constant used for comparisons.
Dim someColor As Color = Color.FromArgb(0)
Dim redShade As Color = Color.FromArgb(255, 200, 0, 100)
' Array to store KnownColor values that match the saturation of the
' redShade color.
Dim colorMatches(15) As KnownColor
' Number of matches found.
Dim count As Integer = 0
' Iterate through the KnownColor enums until 15 matches are found
Dim enumValue As KnownColor
For enumValue = 0 To KnownColor.YellowGreen
someColor = Color.FromKnownColor(enumValue)
If (someColor.GetSaturation()) = (redShade.GetSaturation()) Then
colorMatches(count) = enumValue
count += 1
If count > 15 Then
Exit For
End If
End If
Next enumValue
' Display the redShade color and its argb value.
Dim myBrush1 As New SolidBrush(redShade)
Dim myFont As New Font("Arial", 12)
Dim x As Integer = 20
Dim y As Integer = 20
someColor = redShade
g.FillRectangle(myBrush1, x, y, 100, 30)
g.DrawString(someColor.ToString(), myFont, Brushes.Black, _
x + 120, y)
' Iterate through the matches that were found and display each
' color that corresponds with the enum value in the array. also
' display the name of the KnownColor.
Dim i As Integer
For i = 0 To count - 1
y += 40
someColor = Color.FromKnownColor(colorMatches(i))
myBrush1.Color = someColor
g.FillRectangle(myBrush1, x, y, 100, 30)
g.DrawString(someColor.ToString(), myFont, Brushes.Black, _
x + 120, y)
Next i
End Sub
Se aplica a
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de