如何:对渐变应用灰度校正
可为线性渐变画笔启用 gamma 矫正,方法是将画笔的 GammaCorrection 属性设置为 true
。 将 GammaCorrection 属性设置为 false
可禁用 gemma 矫正。 默认情况下禁用 gemma 矫正。
示例
以下示例是从控件的 Paint 事件处理程序调用的方法。 该示例创建线性渐变画笔,并使用该画笔填充两个矩形。 填充第一个矩形时未进行 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 事件处理程序的参数。