次の方法で共有


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

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

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

次の図は、2 つの塗りつぶされた四角形を示しています。 ガンマ補正が適用されていない上の四角形は、途中が暗く表示されます。 ガンマ補正が適用されている下の四角形は、より均一な明度で表示されます。

Two gradient-filled rectangles, with and without gamma correction.

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 を必要とします。

関連項目