第5章图形图像编程详解.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * 5.9.5 存取位图文件 【例5.30】为上例增加存取位图文件功能。 把MenuStrip控件放到主窗体中。增加顶级菜单项:文件。为“文件”顶级菜单项的弹出菜单增加菜单项:新建、打开、另存为、退出。 为主窗体菜单“文件|新建”菜单项增加单击事件处理函数如下: private void 新建ToolStripMenuItem_Click (object sender, EventArgs e) { bitG.Clear(Color.White);//用白色清空位图对象bitG pictureBox1.Image=bits; } //pictureBox1显示用白色清空位图对象bitG 放OpenFileDialog控件到窗体。菜单“文件|打开”菜单项单击事件处理函数如下: private void 打开ToolStripMenuItem_Click (object sender, EventArgs e) { if(openFileDialog1.ShowDialog(this)== DialogResult.OK) { bits.Dispose(); //撤销bitG所引用的对象 //建立指定文件的新位图对象 bits=new Bitmap(openFileDialog1.FileName); //得到位图对象使用的Graphics类对象 bitG=Graphics.FromImage(bits); pictureBox1.Image=bits; } } 放SaveFileDialog控件到窗体。菜单“文件|另存为”菜单项单击事件处理函数如下: private void 另存为ToolStripMenuItem_Click (object sender, EventArgs e) { if(saveFileDialog1.ShowDialog(this)== DialogResult.OK) { string s=saveFileDialog1.FileName+.bmp; bits.Save(s, System.Drawing.Imaging.ImageFormat.Bmp); } } //也可以存为其他格式,例如:Jpg,Gif等。请读者试一下。 为主窗体菜单“文件|退出”菜单项增加单击事件处理函数如下: private void 退出ToolStripMenuItem_Click (object sender, EventArgs e) { Close(); } 运行,在PictureBox控件拖动鼠标可以画线。存所画的图形到文件,再重新读出该文件,看是否正常运行。检查Windows画图程序能否打开本程序所存的图形文件。 5.9.6 用拖动鼠标方法画椭圆或圆 Windows画图程序用拖动鼠标方法画椭圆或圆,实现的方法是:以鼠标左键被按下处作为矩形的一个顶点,记为顶点1,该点坐标不改变。拖动鼠标移动到另一位置,以此位置作为矩形另一顶点,记为顶点2,顶点1和顶点2在矩形对角线的两端。绘制由顶点1和顶点2定义的矩形的内切椭圆,以显示要绘制椭圆的位置,这个椭圆的位置随着鼠标的移动而改变。鼠标抬起,以鼠标抬起位置为顶点2,用指定的画笔和画刷绘制由顶点1和顶点2定义的矩形的内切椭圆,作为最终图形。本节程序实现此功能。如果图形仅绘制在图形框(PictureBox控件)上,而不保存到其属性Image引用的位图对象中,当调用图形框的Invalidate()方法,发出Paint事件,Paint事件处理函数用图形框属性Image引用的位图对象恢复图像,将擦除仅绘制在图形框上的图形。拖动鼠标方法画椭圆或圆显示位置时,仅将椭圆或圆画在PictureBox上,在鼠标拖动显示下一个位置前,用图形框的Invalidate()方法擦除前一位置所画的图形。 新建项目。为Form1类增加5个变量:Point EndPoint; Point StartPoint; Bitmap bits; Graphics bitG; bool mark=false; 放PictureBox控件到子窗体。修改属性Dock=Fill。 在构造函数中增加语句:bits用来保存pictureBox1中位图图像,是pictureBox1属性Image引用的对象 bits=new Bitmap(pictureBox1.Width, pictureBox1.Height);

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档