Aracılığıyla paylaş


Nasıl yapılır: Donuk ve Yarı Saydam Fırçalarla Çizme

Bir şekli doldururken, bir Brush nesneyi sınıfın doldurma yöntemlerinden Graphics birine geçirmeniz gerekir. Oluşturucunun SolidBrush tek parametresi bir Color nesnedir. Opak bir şekli doldurmak için rengin alfa bileşenini 255 olarak ayarlayın. Yarı saydam şekli doldurmak için alfa bileşenini 1 ile 254 arasında bir değere ayarlayın.

Yarı saydam bir şekli doldurduğunuzda, şeklin rengi arka plan renkleri ile karıştırılır. Alfa bileşeni, şekil ve arka plan renklerinin nasıl karıştırılmış olduğunu belirtir; 0'a yakın alfa değerleri arka plan renklerine daha fazla ağırlık, 255'e yakın alfa değerleri ise şekil rengine daha fazla ağırlık yerleştirir.

Örnek

Aşağıdaki örnek bir bit eşlem çizer ve ardından bit eşlem ile çakışan üç noktayı doldurur. İlk üç nokta 255'lik bir alfa bileşeni kullandığından opaktır. İkinci ve üçüncü üç nokta 128 alfa bileşenini kullandığından yarı saydamdır; arka plan görüntüsünü üç nokta üzerinden görebilirsiniz. özelliğini ayarlayan CompositingQuality çağrı, üçüncü elips 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, 50, 50, bitmap.Width, bitmap.Height);

SolidBrush opaqueBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));
SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(128, 0, 0, 255));

e.Graphics.FillEllipse(opaqueBrush, 35, 45, 45, 30);
e.Graphics.FillEllipse(semiTransBrush, 86, 45, 45, 30);

e.Graphics.CompositingQuality = CompositingQuality.GammaCorrected;
e.Graphics.FillEllipse(semiTransBrush, 40, 90, 86, 30);
Dim bitmap As New Bitmap("Texture1.jpg")
e.Graphics.DrawImage(bitmap, 50, 50, bitmap.Width, bitmap.Height)

Dim opaqueBrush As New SolidBrush(Color.FromArgb(255, 0, 0, 255))
Dim semiTransBrush As New SolidBrush(Color.FromArgb(128, 0, 0, 255))

e.Graphics.FillEllipse(opaqueBrush, 35, 45, 45, 30)
e.Graphics.FillEllipse(semiTransBrush, 86, 45, 45, 30)

e.Graphics.CompositingQuality = CompositingQuality.GammaCorrected
e.Graphics.FillEllipse(semiTransBrush, 40, 90, 86, 30)

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 parametresi PaintEventHandlerolan öğesini gerektirir.PaintEventArgse

Ayrıca bkz.