Share via


如何:对渐变应用灰度校正

可为线性渐变画笔启用 gamma 矫正,方法是将画笔的 GammaCorrection 属性设置为 true。 将 GammaCorrection 属性设置为 false 可禁用 gemma 矫正。 默认情况下禁用 gemma 矫正。

示例

以下示例是从控件的 Paint 事件处理程序调用的方法。 该示例创建线性渐变画笔,并使用该画笔填充两个矩形。 填充第一个矩形时未进行 gamma 矫正,而填充第二个矩形时进行了 gamma 矫正。

下图显示了两个填充的矩形。 上面的矩形没有进行 gamma 矫正,中间显得很暗。 下面的矩形进行了 gamma 矫正,亮度看上去更均匀。

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 窗体,它需要 PaintEventArgse,后者是 Paint 事件处理程序的参数。

另请参阅