用for循环画图,想把每次画的图并在一起,问题是现在我的程序运行结果只有最后一张图
我在一个picturebox上面要画张图,具体几张用for循环实现的,但是每循环一次上一次的bitmap就被覆盖掉了,不知道怎么才能把几个bitmap放在一起,求指教,大致代码如下
Graphics g;
Bitmap rusult;
for (int i = 0; i < 5; i++)//循环画五张图
{
DrawGraph.drawXR drawXR = new DrawGraph.drawXR();//画图的类,返回一个bitmap
result= drawXR.drawBitmap(pic);//画图的类,返回一个bitmap
g = CreateGraphics();
g.DrawImage(result, x,y);//此处每次循环的x值和y值是不一样的
}
pic.BackgroundImage = result; //pic为一个pictureBox,此处把result作为pic的背景
问题: 就是循环的结果是只显示最后一张bitmap了,不能把每次循环得到的bitmap并在一起
------解决方案--------------------Graphics g;
Bitmap rusult = (Bitmap)pic.BackgroundImage;
for(int i = 0;i<5;i++)
{
DrawGraph.drawXR drawXR = new DrawGraph.drawXR();//画图的类,返回一个bitmap
result= drawXR.drawBitmap(pic);//画图的类,返回一个bitmap
g=Graphics.FromImage(rusult);
g.DrawImage(rusult,x,y);
g.Dispose();
}
pic.BackgroundImage = rusult;
这样就行了,你之前的只是一张一张图象显示而已,当然不会合并了。
------解决方案--------------------
Bitmap bmp = new Bitmap(pic.Width,pic.Height);
Graphics g = Graphics.FromImage(bmp);
DrawGraph.drawXR drawXR = new DrawGraph.drawXR();//画图的类,返回一个bitmap
for(int i=0;i<5;i++)
{
Image img = drawXR.drawBitmap(pic); //断点调试下,看看图片对不对
g.DrawImage(img,x,y);
}
g= null;
pic.Bg = bmp;