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

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

示例

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

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

两个渐变填充的矩形,带有和没有 gamma 矫正。

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 e,这是 Paint 事件处理程序的参数。

另请参阅