Sdílet prostřednictvím


Postupy: Kreslení neprůhledných a poloprůhledných čar

Při kreslení čáry je nutné předat Pen objekt metodě DrawLineGraphics třídy. Jedním z parametrů konstruktoru Pen je Color objekt. Pokud chcete nakreslit neprůhlásnou čáru, nastavte alfa komponentu barvy na 255. Pokud chcete nakreslit poloprůhlednou čáru, nastavte alfa komponentu na libovolnou hodnotu od 1 do 254.

Když nakreslíte poloprůhlednou čáru přes pozadí, barva čáry se spojí s barvami pozadí. Alfa komponenta určuje, jak jsou barvy čáry a pozadí smíšené; Alfa hodnoty v blízkosti 0 umístí větší váhu na barvy pozadí a alfa hodnoty poblíž 255 umístí větší váhu na barvu čáry.

Příklad

Následující příklad nakreslí rastrový obrázek a potom nakreslí tři čáry, které rastrový obrázek používají jako pozadí. První řádek používá alfa komponentu 255, takže je neprůmyslná. Druhý a třetí řádek používají alfa komponentu 128, takže jsou poloprůhledné; obrázek pozadí můžete zobrazit přes čáry. Příkaz, který nastaví CompositingQuality vlastnost, způsobí, že kombinace třetího řádku bude provedena ve spojení s gama opravy.

Bitmap bitmap = new Bitmap("Texture1.jpg");
e.Graphics.DrawImage(bitmap, 10, 5, bitmap.Width, bitmap.Height);

Pen opaquePen = new Pen(Color.FromArgb(255, 0, 0, 255), 15);
Pen semiTransPen = new Pen(Color.FromArgb(128, 0, 0, 255), 15);

e.Graphics.DrawLine(opaquePen, 0, 20, 100, 20);
e.Graphics.DrawLine(semiTransPen, 0, 40, 100, 40);

e.Graphics.CompositingQuality = CompositingQuality.GammaCorrected;
e.Graphics.DrawLine(semiTransPen, 0, 60, 100, 60);
Dim bitmap As New Bitmap("Texture1.jpg")
e.Graphics.DrawImage(bitmap, 10, 5, bitmap.Width, bitmap.Height)

Dim opaquePen As New Pen(Color.FromArgb(255, 0, 0, 255), 15)
Dim semiTransPen As New Pen(Color.FromArgb(128, 0, 0, 255), 15)

e.Graphics.DrawLine(opaquePen, 0, 20, 100, 20)
e.Graphics.DrawLine(semiTransPen, 0, 40, 100, 40)

e.Graphics.CompositingQuality = CompositingQuality.GammaCorrected
e.Graphics.DrawLine(semiTransPen, 0, 60, 100, 60)

Následující obrázek znázorňuje výstup následujícího kódu:

Obrázek znázorňující neprůhledný a poloprůhledný výstup

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é