次の方法で共有


不透明および半透明な直線の描画

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

半透明な直線を背景の上に描画するとき、線の色は、背景の色とブレンドされます。 アルファ コンポーネントは、線と背景色を混在させる方法を指定します。アルファ値が 0 に近いほど背景色に重みが増し、アルファ値が 255 に近いほど線の色の重みが大きくなります。

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

Image image(L"Texture1.jpg");
graphics.DrawImage(&image, 10, 5, image.GetWidth(), image.GetHeight());
Pen opaquePen(Color(255, 0, 0, 255), 15);
Pen semiTransPen(Color(128, 0, 0, 255), 15);
graphics.DrawLine(&opaquePen, 0, 20, 100, 20);
graphics.DrawLine(&semiTransPen, 0, 40, 100, 40);
graphics.SetCompositingQuality(CompositingQualityGammaCorrected);
graphics.DrawLine(&semiTransPen, 0, 60, 100, 60);

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

3 本の幅の線で重ねられた画像を示す図:1 本は不透明、1 本はやや透明、もう 1 つは非常に透明