次の方法で共有


不透明ブラシと半透明ブラシを使用した描画

図形を塗りつぶすときは、 Brush オブジェクトのアドレスを Graphics クラスのいずれかの fill メソッドに渡す必要があります。 SolidBrush コンストラクターの 1 つのパラメーターは、Color オブジェクトです。 不透明な図形を塗りつぶすには、色のアルファ コンポーネントを 255 に設定します。 半透明な図形を塗りつぶすには、アルファ コンポーネントを 1 ~ 254 の値に設定します。

半透明な図形を塗りつぶすするとき、図形の色は、背景の色とブレンドされます。 アルファ コンポーネントは、図形と背景色を混在させる方法を指定します。0 に近いアルファ値は背景色により多くの重みを設定し、アルファ値が 255 に近いほど図形の色の重みが大きくなります。

次の例では、イメージを描画し、画像と重なる 3 つの省略記号を塗りつぶします。 最初の楕円はアルファ コンポーネントに 255 を使用するので、不透明です。 2 番目と 3 番目の楕円は、アルファ コンポーネントに 128 を使用するので、楕円から背景画像を確認できます。 Graphics::SetCompositingQuality を呼び出すと、3 番目の楕円のブレンドがガンマ補正と組み合わせて実行されます。

Image image(L"Texture1.jpg");
graphics.DrawImage(&image, 50, 50, image.GetWidth(), image.GetHeight());
SolidBrush opaqueBrush(Color(255, 0, 0, 255));
SolidBrush semiTransBrush(Color(128, 0, 0, 255));
graphics.FillEllipse(&opaqueBrush, 35, 45, 45, 30);
graphics.FillEllipse(&semiTransBrush, 86, 45, 45, 30);
graphics.SetCompositingQuality(CompositingQualityGammaCorrected);
graphics.FillEllipse(&semiTransBrush, 40, 90, 86, 30);

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

3 つの楕円で重ねられた画像を示す図:1 つは不透明、1 つはやや透明、1 つは非常に透明