Compartilhar via


Como aplicar correção gama a um gradiente

Você pode ativar a correção de gama para um pincel de gradiente linear definindo a propriedade do GammaCorrection pincel como true. Você pode desativar a correção de gama definindo a GammaCorrection propriedade como false. A correção de gama está desativada por padrão.

Exemplo

O exemplo a seguir é um método chamado do manipulador de eventos de Paint um controle. O exemplo cria um pincel de gradiente linear e usa esse pincel para preencher dois retângulos. O primeiro retângulo é preenchido sem correção de gama e o segundo retângulo é preenchido com correção de gama.

A ilustração a seguir mostra os dois retângulos preenchidos. O retângulo superior, que não possui correção de gama, aparece escuro no meio. O retângulo inferior, que tem correção de gama, parece ter uma intensidade mais uniforme.

Dois retângulos preenchidos com gradiente, com e sem correção de gama.

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)

Compilando o código

O exemplo anterior foi projetado para uso com o Windows Forms e requer PaintEventArgse, que é um parâmetro do Paint manipulador de eventos.

Confira também