HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Gamma korrekció végrehajtása


Példaprogram letöltése

8017 bájt

Az ún. Gamma korrekció nélküli rajzoláskor bizonyos színek közötti átmenet esetén a kép egyre sötétebb árnyalatot kap, minél nagyobb mind a két szín összetevő mértéke. Például zöld és piros szín közötti színátmenet esetén ez nagyon jól látszik azon a ponton, ahol a zöld is és a piros is 50 - 50%-ban van jelen.
A Gamma korrekció felhasználásával arra nyílik lehetőség, hogy elkerüljük ezt a sötét árnyalat megjelenését és a színátmenet folyamatos legyen két tetszőleges szín között.

Színátmenet rajzolásához a LinearGradientBrush osztály által nyújtott ecsetet kell felhasználnunk. Itt megadható két tetszőleges szín, mely között az átmenet megvalósul.
A Gamma korrekció alkalmazása igen egyszerű feladat.
GammaCorrection
Osztály: System.Drawing.Drawing2D.LinearGradientBrush
public bool GammaCorrection {get; set;}
A GammaCorrection property igazra állításával a színátmenet képzésekor Gamma korrekció kerül végrehajtásra, így a sötétebb árnyalatok elkerülhetők a színátmenetben.
A mellékelt példában kirajzolunk két téglalapot különböző színekkel, melyek között színátmenet történik. Az egyik téglalapnál kihasználjuk a Gamma korrekciót míg a másiknál nem, így jól megfigyelhető a különbség.
    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {
      Graphics g = e.Graphics;
      ...
      Rectangle r2 = new Rectangle(5, 110, ClientRectangle.Width-10, 100);
      LinearGradientBrush brush2 = new LinearGradientBrush(r2, c1, c2, 135, true);
      brush2.SetBlendTriangularShape(0.5f);           
      brush2.GammaCorrection = true;
      g.FillRectangle(brush2, r2);
      ...
    }

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 110. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |