Aracılığıyla paylaş


Nasıl yapılır: Donuk ve Yarı Saydam Çizgiler Çizme

Bir çizgi çizdiğinizde, sınıfın DrawLine yöntemine Graphics bir Pen nesnesi geçirmeniz gerekir. Oluşturucunun parametrelerinden Pen biri bir Color nesnesidir. Opak çizgi çizmek için rengin alfa bileşenini 255 olarak ayarlayın. Yarı saydam çizgi çizmek için alfa bileşenini 1 ile 254 arasında bir değere ayarlayın.

Arka plan üzerine yarı saydam bir çizgi çizdiğinizde, çizginin rengi arka planın renkleriyle karıştırılır. Alfa bileşeni, çizgi ve arka plan renklerinin nasıl karıştırıldığından oluşur; 0'a yakın alfa değerleri arka plan renklerine daha fazla ağırlık, 255'e yakın alfa değerleri ise çizgi rengine daha fazla ağırlık yerleştirir.

Örnek

Aşağıdaki örnek bir bit eşlem çizer ve ardından bit eşlemi arka plan olarak kullanan üç çizgi çizer. İlk satırda 255 alfa bileşeni kullanılır, bu nedenle opaktır. İkinci ve üçüncü satırlar 128'in alfa bileşenini kullandığından yarı saydamdır; arka plan resmini çizgiler arasında görebilirsiniz. özelliğini ayarlayan CompositingQuality deyimi, üçüncü satır için karıştırmanın gama düzeltmesi ile birlikte yapılmasına neden olur.

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)

Aşağıdaki çizimde aşağıdaki kodun çıkışı gösterilmektedir:

Illustration that shows opaque and semitransparent output

Kod Derleniyor

Yukarıdaki örnek, Windows Forms ile kullanılmak üzere tasarlanmıştır ve olay işleyicisinin Paint parametresi olan öğesini gerektirir.PaintEventArgse

Ayrıca bkz.