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ść.

Dwa prostokąty wypełnione gradientem z korektą gamma i bez.

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 systemu Windows i wymaga PaintEventArgse, który jest parametrem programu obsługi zdarzeń Paint.

Zobacz także