我有一个PictureBox控件,其背景颜色设置为透明。我想在这个控件上绘制一个图像(来源:https://en.wikipedia.org/wiki/Seven-segment_display#/media/File:7-segment.svg)但不是透明背景,它的背景颜色是白色(不幸的是,油漆不支持alpha通道)。
以下是我尝试绘制位图的方法:
viewDidLoad() in the Class DetailViewController
绘制分段(绘图点类似)按预期工作,但绘制背景将不接受'GetImageAttributes()'创建的透明度。
另一个奇怪的是,如果我添加
func prepareForSegue()
之前
TableViewController
在Update()方法中,我的Grapics'g'只是黑色 - 无论我保留还是删除
http://test:8081/purge/test3?filter={"log.epochTimeStamp":{"$lte": 1458750378}}
在'CreateBackgroundBitmap()'中的,但在黑色背景上绘制片段按预期工作?!
有人看到问题所在吗?我错过了什么?
非常感谢:)
答案 0 :(得分:0)
嗯,我明白了。我想我并不了解Graphics对象如何与位图交互,图形对象是由它构成的。
以下是必须如何更改的内容:
public Bitmap Update()
{
Bitmap background = new Bitmap(301, 67);
Graphics g = Graphics.FromImage(background);
g.Clear(color: Color.White);
Bitmap buffer = CreateBackgroundBitmap();
g.DrawImage(buffer, new Rectangle(0, 0, 301, 67), 0.0f, 0.0f, 301, 67, GraphicsUnit.Pixel, this.GetImageAttributes());
if (State == Powerstate.on)
{
for (int i = 0; i < digits.Count(); i++)
{
DrawSegment(ref g, digits[i], i);
if (digits[i]?.Dot == Dot.dot_on)
{
DrawPoint(ref g, digits[i], i);
}
}
}
return background;
}