Color.GetSaturation メソッド

定義

この Color 構造体の HSL (色相値-彩度値-輝度値) の彩度値を取得します。Gets the hue-saturation-lightness (HSL) saturation value for this Color structure.

public:
 float GetSaturation();
public float GetSaturation ();
member this.GetSaturation : unit -> single
Public Function GetSaturation () As Single

戻り値

Single

この Color の鮮やかさ。The saturation of this Color. 鮮やかさの範囲は 0.0 から 1.0 で、0.0 はグレースケールを、1.0 は最も鮮やかであることを示します。The saturation ranges from 0.0 through 1.0, where 0.0 is grayscale and 1.0 is the most saturated.

次のコード例は、Windows フォームで使用するように設計されてい PaintEventArgs e ます。これは、イベントハンドラーのパラメーターであるを必要とし Paint ます。The following code example is designed for use with Windows Forms, and it requires PaintEventArgs e, which is a parameter of the Paint event handler. コードは、次のアクションを実行します。The code performs the following actions:

  • 比較に使用する構造体のインスタンスを作成し Color redShade ます。Creates an instance of a Color structure, redShade, to be used for comparisons.

  • 列挙体要素を反復処理し KnownColor て、と同じ鮮やかさを持つ既知の色をすべて検索し redShade ます。Iterates through the KnownColor enumeration elements to find all known colors that have the same saturation as redShade. 繰り返しは、15個の一致が見つかった場合、またはループカウンターの値が最後の要素よりも大きい場合に終了し KnownColor ます。The iterations are terminated when 15 matches are found or the value of the loop counter is greater than the last KnownColor element.

  • 反復処理のたびに、によって KnownColor 要素 (配列内の条件と一致する場合) が保存されます。During each iteration, saves the KnownColor element - if it matches the criteria - in an array.

  • ブラシを使用して四角形を描画します。Uses a brush to paint rectangles.

最初の四角形は、によって表される色を描画し redShade ます。The first rectangle is painted the color represented by redShade. その他の各四角形は、の KnownColor 鮮やかさに一致するを描画し redShade ます。Each of the other rectangles is painted a KnownColor that matches the saturation of the 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

適用対象