用for循环画图,想把每次画的图并在一起,问题是现在我的程序运行结果只有最后一张图

leedeeng 2013-03-06 05:07:25
我在一个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并在一起
...全文
1255 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
leedeeng 2013-03-07
  • 打赏
  • 举报
回复
引用 12 楼 assky124 的回复:
C# code?12345678910Bitmap bmp = new Bitmap(pic.Width,pic.Height);Graphics g = Graphics.FromImage(bmp);DrawGraph.drawXR drawXR = new DrawGraph.drawXR();//画图的类,返回一个bitmapfor(int i=0;i<5;i++……
大致解决了我的问题 谢谢
leedeeng 2013-03-07
  • 打赏
  • 举报
回复
引用 11 楼 Trent1985 的回复:
Graphics g; Bitmap rusult = (Bitmap)pic.BackgroundImage; for(int i = 0;i<5;i++) { DrawGraph.drawXR drawXR = new DrawGraph.drawXR();//画图的类,返回一个bitmap result= drawXR.drawBi……
这个我试了 还是不行,12楼的方法基本解决了我的问题,谢谢您
assky124 2013-03-07
  • 打赏
  • 举报
回复

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;
Trent1985 2013-03-07
  • 打赏
  • 举报
回复
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; 这样就行了,你之前的只是一张一张图象显示而已,当然不会合并了。
pig357 2013-03-07
  • 打赏
  • 举报
回复
先画背景 g.DrawImage(pic.BackgroundImage,0,0);
leedeeng 2013-03-06
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
g = CreateGraphics();放在循环外面。
g = CreateGraphics() 放循环外面还是同样的问题。也是只会有最后一次循环的图片,就是没有把几个照片合在一起,已经试过了,确实不行。各位还有没有什么好的方法啊?
leedeeng 2013-03-06
  • 打赏
  • 举报
回复
引用 5 楼 caozhy 的回复:
引用 3 楼 qq_1277874734 的回复:g = CreateGraphics();放在循环外面 正确。没看清。
g = CreateGraphics() 放循环外面还是同样的问题。也是只会有最后一次循环的图片,就是没有把几个照片合在一起,已经试过了,确实不行。各位还有没有什么好的方法啊?
leedeeng 2013-03-06
  • 打赏
  • 举报
回复
g = CreateGraphics() 放循环外面还是同样的问题。也是只会有最后一次循环的图片,就是没有把几个照片合在一起,已经试过了,确实不行
skevil 2013-03-06
  • 打赏
  • 举报
回复
g = CreateGraphics();放外面嘛
threenewbee 2013-03-06
  • 打赏
  • 举报
回复
引用 3 楼 qq_1277874734 的回复:
g = CreateGraphics();放在循环外面
正确。没看清。
threenewbee 2013-03-06
  • 打赏
  • 举报
回复
g = CreateGraphics();放在循环外面。
极限编程 2013-03-06
  • 打赏
  • 举报
回复
g = CreateGraphics();放在循环外面
threenewbee 2013-03-06
  • 打赏
  • 举报
回复
DrawGraph.drawXR drawXR = new DrawGraph.drawXR();放在循环外面。
  • 打赏
  • 举报
回复
你没有将每次循环的值保存起来,而是6次都展现了。

110,565

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧