Udostępnij za pośrednictwem


Porady: stosowanie korekcji gamma do gradientu

Możesz włączyć korektę gamma dla pędzla gradientu liniowego, ustawiając właściwość pędzla GammaCorrection na true. Można wyłączyć korektę GammaCorrection gamma, ustawiając właściwość na false. Korekta gamma jest domyślnie wyłączona.

Przykład

Poniższy przykład to metoda wywoływana z programu obsługi zdarzeń kontrolki Paint . W przykładzie utworzono szczotkę gradientu liniowego i użyto tego pędzla do wypełnienia dwóch prostokątów. Pierwszy prostokąt jest wypełniony bez korekty gamma, a drugi prostokąt jest wypełniony korektą gamma.

Na poniższej ilustracji przedstawiono dwa wypełnione prostokąty. Górny prostokąt, który nie ma korekty gamma, jest ciemny w środku. Prostokąt dolny, który ma korektę gamma, wydaje się mieć bardziej jednolitą intensywność.

Two gradient-filled rectangles, with and without gamma correction.

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)

Kompilowanie kodu

Powyższy przykład jest przeznaczony do użycia z formularzami Windows Forms i wymaga PaintEventArgseparametru , który jest parametrem Paint programu obsługi zdarzeń.

Zobacz też