日期:2014-05-18  浏览次数:21211 次

[C# 画图]我在Panel里面画图,我如何保存成图片
我先在Panel里面画图,最后我要保存成图片,请问如何操作?

------解决方案--------------------
一般情况下,功夫应是这样:

Bitmap b = new Bitmap(Width, Height);
this.panel1.BackgroundImage = b;
Graphics g = Graphics.FromImage(b);


//执行画图..........


b.Save("...");
------解决方案--------------------
在Panel的OnPaint(PaintEventArgs e)方法里这么画

C# code
protected override void OnPaint(PaintEventArgs e)
{
    // 先创建一个Bitmap对象
    Bitmap bmp = new Bitmap(300, 200);
    Graphics g = Graphics.FromImage(bmp);
    // 在这里用g画图
    ...

    // 保存
    bmp.Save("p1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg); // 可以指定格式

    // 更新Panel的图像
    e.Graphics.DrawImage(bmp, 0, 0, 100, 100);
    g.dispose();
}

------解决方案--------------------
C# code

Bitmap bmp = new Bitmap(panel1.Width, panel1.Height);
panel1.DrawToBitmap(bmp);
bmp.Save(fileName);

------解决方案--------------------
其实不然,5楼是截取当前Panel所在的屏幕区域的做法,这种做法会导致
把Panel的背景也给保存下来啦,还有就是当Panel出现滚动条后,无法保存全部绘图数据

最常用的做法是3楼和4楼的做法,图形绘制到屏幕的同时绘制到内存图象
搂主可以参考下贴,我有类似的回复及解释,仅供参考,具体实现搂主需要自己努力啦:
http://topic.csdn.net/u/20081207/18/f841d3d0-5094-47ef-aef9-54b8c83473bb.html