Поделиться через


Практическое руководство. Применение гамма-коррекции к градиенту

Гамма-коррекцию для линейной кисти градиента можно включить, задав для свойства кисти 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 событий.

См. также