3

50%などの透明度でC#でグラフィックを描画することは可能ですか?

私の実際のコードは次のようになります。

Image myBitmap = new Bitmap((int)sizeX,(int)sizeY);
Graphics myGraphics = Graphics.FromImage(myBitmap);

Pen outerPenColor = new Pen(Color.Black, 1);

myGraphics.DrawRectangle(outerPenColor, 1.0, 2.0, 3.0, 4.0);

これはすべて問題なく動作しますが、透明な黒が欲しいのですが、これは可能ですか?

4

3 に答える 3

3

Graphicsコンテキストとオブジェクトは、Bitmapデフォルトで透過性をサポートしています。あなたがしなければならない唯一のことは不透明ではない色を描くことです。アルファ値Color.FromArgbと色を受け取り、指定した透明度を持つを返す静的メソッドにはオーバーロードがあります。アルファ値は、0(完全に透明)から255(完全に不透明)までの値です。例えば:Color

// 75% opaque (25% transparent) Red
var semiRed = Color.FromArgb(191, Color.Red);
// 50% opaque (50% transparent) Black
var semiBlack = Color.FromArgb(128, Color.Black);

Penこれで、その半透明の黒をの色として使用し、半透明の線を描くことができます。

Pen outerPenColor = new Pen(semiBlack, 1);
myGraphics.DrawRectangle(outerPenColor, 1.0, 2.0, 3.0, 4.0);
于 2013-02-26T11:47:31.693 に答える
0

Color.Blackを使用する代わりに、アルファ値を指定できるColor.FromArgbを使用します。

于 2013-02-26T11:36:53.933 に答える
0

私が間違っていない(テストされていない)場合は、ペンに別のアルファを使用して機能するはずです。例:

Pen outerPenColor = new Pen(Color.FromArgb(128,0,0,0), 1);
于 2013-02-26T11:36:57.503 に答える