Sdílet prostřednictvím


Postupy: Použití gama korekce na přechod

U lineárního přechodového štětce můžete povolit opravu gama nastavením vlastnosti štětce GammaCorrection na truehodnotu . Opravu gama můžete zakázat nastavením GammaCorrection vlastnosti na falsehodnotu . Oprava gama je ve výchozím nastavení zakázaná.

Příklad

Následující příklad je metoda, která je volána z obslužné rutiny Paint události ovládacího prvku. Příklad vytvoří lineární přechodový štětec a použije ho k vyplnění dvou obdélníků. První obdélník je vyplněn bez gama opravy a druhý obdélník je vyplněný gama opravami.

Následující obrázek znázorňuje dva vyplněné obdélníky. Horní obdélník, který nemá opravu gama, se uprostřed zobrazuje tmavě. Dolní obdélník, který má gama opravy, se zdá mít jednotnější intenzitu.

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)

Probíhá kompilace kódu

Předchozí příklad je určen pro použití s model Windows Forms a vyžaduje PaintEventArgse, což je parametr Paint obslužné rutiny události.

Viz také