当前位置:编程学习 > C#/ASP.NET >>

GDI+ 的问题

我在一个form上用GDI+画了一些图形,有没有办法获取form完整的图像(包括刚画上去的图形),或者有没有办法可以把包含图形的图像保存到硬盘上? --------------------编程问答--------------------


namespace TestBitmap
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
            e.Graphics.FillPie(Brushes.Tomato, new Rectangle(0, 0, ClientSize.Width, ClientSize.Height), -90f, 180);
        }

        private void Form1_MouseDown(object sender, MouseEventArgs e)
        {
            Bitmap btm = new Bitmap(ClientSize.Width,ClientSize.Height);
            using (btm)
            {
                Graphics g = Graphics.FromImage(btm);
                using (g)
                {
                    g.CopyFromScreen(this.PointToScreen(this.ClientRectangle.Location), new Point(0, 0), ClientSize);
                    SaveFileDialog DlgSave = new SaveFileDialog();
                    DlgSave.Filter = "位图格式(*.bmp)|*.bmp|JPEG格式(*.jpeg)|*.jpeg";
                    if (DlgSave.ShowDialog() == DialogResult.OK)
                    {
                        if (DlgSave.FilterIndex == 1)
                        {
                            btm.Save(DlgSave.FileName, ImageFormat.Bmp);
                        }
                        else if (DlgSave.FilterIndex == 2)
                        {
                            btm.Save(DlgSave.FileName, ImageFormat.Jpeg);
                        }
                    }
                    MessageBox.Show(DlgSave.FileName+"  "+DlgSave.FilterIndex.ToString());
                }
            }
        }
    }
}
--------------------编程问答-------------------- 你可以使用一个列表来存放你的图形数据,在窗体关闭或需要保存的地方循环操作把列表中的数据保存到磁盘。下一次加载窗体的时候从磁盘上读出并循环向窗体再次画出图像。
可以参考下这个:

C#画图(WinForm) 
http://blog.csdn.net/hbxtlhx/archive/2007/08/31/1766913.aspx
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,