3

是否可以在 C# 中绘制透明度为 50% 的图形?

我的实际代码如下所示:

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它采用alpha 值和颜色并返回Color具有您指定的透明度的 a。alpha 值介于 0(完全透明)到 255(完全不透明)之间。例如:

// 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,它允许您指定一个 alpha 值。

于 2013-02-26T11:36:53.933 回答
0

如果我没记错(未经测试),它应该在笔上使用不同的 Alpha,例如:

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