共用方式為


如何:繪製不透明和半透明線條

當您繪製一條線時,必須傳遞 Pen 物件至 Graphics 類別的 DrawLine 方法。 Pen 建構函式的其中一個參數是 Color 物件。 若要繪製不透明的線條,請將色彩的 Alpha 元件設為 255。 若要繪製半透明線條,請將 Alpha 元件設為從 1 到 254 的任何值。

當您在背景上繪製半透明線條時,線條的色彩會與背景的色彩混合。 Alpha 元件指定如何混合線條和背景色彩;接近於 0 的 Alpha 值給予背景色彩較多的權重,而接近 255 的 Alpha 值給予線條色彩較多的權重。

範例

下列範例會繪製點陣圖,然後繪製以該點陣圖做為背景的三條線。 第一條線使用的 Alpha 元件為 255,所以是不透明的。 第二和第三條線使用的 Alpha 元件為 128,因此是半透明的;您可以透過線條看到背景影像。 設定 CompositingQuality 屬性的陳述式會讓第三條線搭配 Gamma 修正進行混色。

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)

下圖顯示下列程式碼的輸出:

Illustration that shows opaque and semitransparent output

編譯程式碼

上述範例是為了搭配 Windows Form 使用而設計,且其需要 PaintEventArgse,這是 Paint 事件處理常式的參數。

另請參閱