次の方法で共有


方法: グラデーションにガンマ補正を適用する

線形グラデーション ブラシのガンマ補正を有効にするには、ブラシの GammaCorrection プロパティを true に設定します。 ガンマ補正を無効にするには、 GammaCorrection プロパティを falseに設定します。 ガンマ補正は既定では無効になっています。

次の例は、コントロールの Paint イベント ハンドラーから呼び出されるメソッドです。 この例では、線形グラデーション ブラシを作成し、そのブラシを使用して 2 つの四角形を塗りつぶします。 最初の四角形はガンマ補正なしで塗りつぶされ、2 番目の四角形はガンマ補正で塗りつぶされます。

次の図は、塗りつぶされた 2 つの四角形を示しています。 ガンマ補正がない上の四角形は、中央に暗く表示されます。 ガンマ補正を持つ下部の四角形は、より均一な強度を持っているように見えます。

ガンマ補正の有無にかかわらず、グラデーションで塗りつぶされた 2 つの四角形。

public void FillTwoRectangles(PaintEventArgs e)
{
   LinearGradientBrush linGrBrush = new LinearGradientBrush(
       new Point(0, 10),
       new Point(200, 10),
       Color.Red,
       Color.Blue);

    e.Graphics.FillRectangle(linGrBrush, 0, 0, 200, 50);
    linGrBrush.GammaCorrection = true;
    e.Graphics.FillRectangle(linGrBrush, 0, 60, 200, 50);
}
Dim linGrBrush As New LinearGradientBrush( _
   New Point(0, 10), _
   New Point(200, 10), _
   Color.Red, _
   Color.Blue)

e.Graphics.FillRectangle(linGrBrush, 0, 0, 200, 50)
linGrBrush.GammaCorrection = True
e.Graphics.FillRectangle(linGrBrush, 0, 60, 200, 50)

コードのコンパイル

前の例は Windows フォームで使用できるように設計されており、PaintEventArgs イベント ハンドラーのパラメーターである ePaintが必要です。

こちらも参照ください