図形を塗りつぶすときは、 Brush オブジェクトを Graphics クラスのいずれかの塗りつぶしメソッドに渡す必要があります。 SolidBrush コンストラクターの 1 つのパラメーターは、Color オブジェクトです。 不透明な図形を塗りつぶすには、色のアルファ 成分を 255 に設定します。 半透明の図形を塗りつぶすには、アルファ 成分を 1 ~ 254 の任意の値に設定します。
半透明の図形を塗りつぶすと、図形の色が背景の色とブレンドされます。 アルファ コンポーネントは、図形と背景色を混在させる方法を指定します。0 に近いアルファ値では背景色の重みが増え、アルファ値が 255 に近いほど図形の色に重みが大きくなります。
例
次の使用例は、ビットマップを描画し、ビットマップと重なる 3 つの楕円を塗りつぶします。 最初の楕円は 255 のアルファ成分を使用するため、不透明です。 2番目と3番目の楕円は、アルファ成分128を使用しているため、半透明になっています。楕円を通して背景画像を見ることができます。 CompositingQuality プロパティを設定する呼び出しにより、3 番目の楕円のブレンドがガンマ補正と組み合わせて実行されます。
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)
次の図は、次のコードの出力を示しています。
コードのコンパイル
前の例は、Windows フォームで使用するために設計されていて、PaintEventArgs のパラメーターである e
PaintEventHandler を必要とします。
こちらも参照ください
.NET Desktop feedback