是否可以在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);
这一切都很好,但我想要一个透明的黑色,这可能吗?
答案 0 :(得分:3)
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);
答案 1 :(得分:0)
使用Color.FromArgb代替使用Color.Black,这将允许您指定alpha值。
答案 2 :(得分:0)
如果我没有弄错(未经测试),它应该在笔上使用不同的Alpha,例如:
Pen outerPenColor = new Pen(Color.FromArgb(128,0,0,0), 1);