2013-02-26 86 views
2

是否可以在C#中使用透明度绘制图形,例如: 50%?为Graphics.Draw添加透明度

我的实际代码如下所示:

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); 

这一切工作正常,但我希望有一个透明的黑色,这可能吗?

回答

2

Graphics背景和Bitmap对象默认支持的透明度。你唯一需要做的是绘制颜色不是不透明。静态方法Color.FromArgb有一个过载,该过程需要一个alpha值和一个颜色并返回Color,它具有您指定的透明度。 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); 
0

而不是使用Color.Black,使用Color.FromArgb,这将允许您指定一个alpha值。

0

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

Pen outerPenColor = new Pen(Color.FromArgb(128,0,0,0), 1);