Практическое руководство. Применение гамма-коррекции к градиенту
Гамма-коррекцию для линейной кисти градиента можно включить, задав для свойства кисти GammaCorrection значение true
. Отключить гамма-коррекцию можно задав для свойства GammaCorrection значение false
. Гамма-коррекция по умолчанию отключена.
Пример
В следующем примере представлен метод, который вызывается из обработчика событий Paint в элементе управления. В примере создается линейная кисть градиента, которая затем используется для заполнения двух прямоугольников. Первый прямоугольник заполняется без гамма-коррекции, а второй прямоугольник — уже с ее использованием.
На рисунке ниже показаны эти два заполненных прямоугольника. Верхний прямоугольник, который не имеет гамма-коррекции, становится темным в середине. Нижний прямоугольник, имеющий гамма-коррекцию имеет более равномерное значение интенсивности цветов.
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 Forms и требуется PaintEventArgse
, что является параметром обработчика Paint событий.
См. также
.NET Desktop feedback