次の方法で共有


方法: 不透明な線と半透明の線を描画する

線を描画するときは、Pen クラスの DrawLine メソッドにGraphics オブジェクトを渡す必要があります。 Pen コンストラクターのパラメーターの 1 つは、Color オブジェクトです。 不透明な線を描画するには、色のアルファ成分を 255 に設定します。 半透明の線を描画するには、アルファ 成分を 1 ~ 254 の任意の値に設定します。

背景に半透明の線を描画すると、線の色が背景の色とブレンドされます。 アルファコンポーネントは、線と背景色がどのように混在するかを指定します。0 に近いアルファ値は背景色により多くの重みを設定し、255 に近いアルファ値は線の色により多くの重みを置きます。

次の使用例は、ビットマップを描画し、そのビットマップを背景として使用する 3 本の線を描画します。 最初の行は 255 のアルファ成分を使用するため、不透明です。 2番目と3番目の行は128のアルファ成分を使用するため、半透明です。あなたは線を通して背景画像を見ることができます。 CompositingQualityプロパティを設定するステートメントにより、3 行目のブレンドがガンマ補正と組み合わせて実行されます。

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)

次の図は、次のコードの出力を示しています。

不透明および半透明の出力を示す図

コードのコンパイル

前の例は Windows フォームで使用できるように設計されており、PaintEventArgs イベント ハンドラーのパラメーターである ePaintが必要です。

こちらも参照ください