江西理工大学软件学院
计算机类课程实验报告
课程名称: C#程序设计
班 级: 11软会4班
姓 名: 黄健
学 号: 11222122
江西理工大学软件学院
实验 七
实验名称 | GDI+编程 | |||||
实验日期 | 2013-5-30 | 实验成绩 | ||||
实验目的、要求及内容 | 一、实验目的: 1、创建Graphics对象; 2、使用Graphics对象绘制线条和形状、呈现文本或显示与操作图像 2、实验内容 1、创建Graphics类的实例的对象,使用Graphics对象绘制线条和形状。 1)新建Windows应用程序。 2)添加一个按钮,双击按钮,添加绘图程序。 3)运行程序,观察运行结果。 让圆在屏幕上随机移动,当圆接触到边缘后就改变方向。修改和运行程序,观察运行结果。 添加两个按钮,实现清除和文本测试。 2、操作图像,实现图片的打开、保存等功能 以编程方式在操作菜单项下增加“放大”和“缩小”子菜单项,以当前图像大小的10%的比例实现图片的缩放功能。 | |||||
实验环境 | 地点:3423机房 C#环境:1、VS2010 2、.NetFramework3.5 | |||||
算法描述及实验步骤 | 创建Graphics对象,使用Graphics对象绘制线条和形状: 1.启动vs2008. 2..创建窗体与菜单。新建一个windows应用程序。 3.添加一个按钮,双击按钮,添加代码。 4.按F5键进行调试。 5.观察运行成果。 6.添加两个按钮,实现清除和文本测试 操作图像,实现图片的打开、保存等功能 (1)设计新窗体。 (2)编写代码。 (3)编译运行,观察运行结果。 | |||||
调试过程及实验结果 | 1 .实验运行结果 | |||||
2.添加两个按钮,实现清除和文本测试 3. 结果 | ||||||
总结 | 通过这次实践,我觉得我学到了很多东西,不光光是在知识层面上的,整体都有了进一步的了解,更是认识到编程的不容易,一个看似简单的程序,原来也有这么多的代码,但是那么一个复杂的代码,如果深入研究后你会发现其实各个代码之间都是有联系的,一个看上去巨大的程序实际上是由若干个函数、方法、类等组成的。以前对于那些小的程序尚能敲一敲,看得懂。对于大的程序就很容易感到束手无策。我觉得在问题面前我们应该先要冷静地分析一下,将大问题分解成一个个的小问题,再各个击破。 虽然成功地完成了程序,但是自己本身尚有许多不足之处,需要进一步的学习和巩固。不管是做什么都要有坚韧不拔的意志,在遇到困难的时候要懂得坚持,也要学会分析问题、解决问题。 同时,很多的东西,理解了,可是在实现的时候还是有很多的错误发生,在以后的练习和实践中,应该多动手,遇到问题多思考,即使方案不是最优的也要想办法自己解决,然后和好的方案进行比较,从中出自己的差距在哪里。 最后感谢老师在实验中对我们的指导 | |||||
代码 | 实验7-1:创建Graphics对象,使用Graphics对象绘制线条和形状 主要相关代码: 1. 添加一个按钮,双击按钮,添加绘图程序 private void button1_Click(object sender, EventArgs e) { Graphics myGra = this.CreateGraphics(); Pen mypen1 = new Pen(Color.Red, 2); myGra.DrawLine(mypen1, 100, 0, 300, 500);//直线 Pen mypen2 = new Pen(Color.Orange, 2); myGra.DrawEllipse(mypen2, 100, 100, 60, 60);//圆形 myGra.DrawEllipse(mypen2, 200, 100, 60, 120);//椭圆形 Pen mypen3= new Pen(Color.Yellow , 3); myGra.DrawRectangle (mypen3, 123, 234, 60, 60);//正方形 myGra.DrawRectangle(mypen3, 223, 234, 60, 120);//任意矩形 //自定义多边形 Point[] myPoint = new Point[4]; myPoint[0].Y = 100; myPoint[1].X = 200; myPoint[1].Y = 20; myPoint[2].X = 300; myPoint[2].Y = 100; myPoint[3].X= 123; myPoint[3].Y = 234; Pen mypen20 = new Pen(Color.Aqua); myGra.DrawPolygon(mypen20, myPoint); } 改变button按钮的形状2. 添加两个按钮,实现清除和文本测试 private void button3_Click(object sender, EventArgs e) { Graphics fontGra = this.CreateGraphics(); Font myFont = new Font("楷体_GB2312", 24); Brush myBr = new SolidBrush(Color.Red); fontGra.DrawString(button_Font.Text, myFont, myBr, new Point(200, 200)); } private void button2_Click(object sender, EventArgs e) { Graphics clearG = this.CreateGraphics(); clearG.Clear(Color.White); } | |||||
实验7-2:操作图像,实现图片的打开、保存等功能 相关主要代码: 1.Form1.Designer.cs namespace myImage { partial class Form1 { /// <summary> /// 必需的设计器变量。 /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的资源。 /// </summary> /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗体设计器生成的代码 /// <summary> /// 设计器支持所需的方法 - 不要 /// 使用代码编辑器修改此方法的内容。 /// </summary> private void InitializeComponent() { this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.FileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuItemOpen = new System.Windows.Forms.ToolStripMenuItem(); this.menuItemSave = new System.Windows.Forms.ToolStripMenuItem(); this.menuItemExit = new System.Windows.Forms.ToolStripMenuItem(); this.OpToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.menuItemInvert = new System.Windows.Forms.ToolStripMenuItem(); this.menuItemGray = new System.Windows.Forms.ToolStripMenuItem(); this.menuItemBright = new System.Windows.Forms.ToolStripMenuItem(); this.menuStrip1.SuspendLayout(); this.SuspendLayout(); // menuStrip1 | ||||||
// // menuStrip1 // this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.FileToolStripMenuItem, this.OpToolStripMenuItem}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Size = new System.Drawing.Size(292, 24); this.menuStrip1.TabIndex = 0; this.menuStrip1.Text = "menuStrip1"; // // FileToolStripMenuItem // this.FileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuItemOpen, this.menuItemSave, this.menuItemExit}); this.FileToolStripMenuItem.Name = "FileToolStripMenuItem"; this.FileToolStripMenuItem.Size = new System.Drawing.Size(43, 20); this.FileToolStripMenuItem.Text = "文件"; // // menuItemOpen // this.menuItemOpen.Name = "menuItemOpen"; this.menuItemOpen.Size = new System.Drawing.Size(152, 22); this.menuItemOpen.Text = "打开"; // // menuItemSave // this.menuItemSave.Name = "menuItemSave"; this.menuItemSave.Size = new System.Drawing.Size(152, 22); this.menuItemSave.Text = "保存"; // // menuItemExit // this.menuItemExit.Name = "menuItemExit"; this.menuItemExit.Size = new System.Drawing.Size(152, 22); this.menuItemExit.Text = "退出"; // // OpToolStripMenuItem // if (this.checkBox_zi.Checked == true) this.textBox1.Text = textBox1.Text + checkBox_zi.Text + ","; } private void radioButton_hong_CheckedChanged_1(object sender, EventArgs e) { if (this.radioButton_hong.Checked == true) this.BackColor = Color.Red; } private void textBox1_TextChanged(object sender, EventArgs e) { } } } | ||||||
this.OpToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuItemInvert, this.menuItemGray, this.menuItemBright}); this.OpToolStripMenuItem.Name = "OpToolStripMenuItem"; this.OpToolStripMenuItem.Size = new System.Drawing.Size(43, 20); this.OpToolStripMenuItem.Text = "操作"; // // menuItemInvert // this.menuItemInvert.Name = "menuItemInvert"; this.menuItemInvert.Size = new System.Drawing.Size(152, 22); this.menuItemInvert.Text = "插入"; // // menuItemGray // this.menuItemGray.Name = "menuItemGray"; this.menuItemGray.Size = new System.Drawing.Size(152, 22); this.menuItemGray.Text = "灰度"; // // menuItemBright // this.menuItemBright.Name = "menuItemBright"; this.menuItemBright.Size = new System.Drawing.Size(152, 22); this.menuItemBright.Text = "亮度"; // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 267); this.Controls.Add(this.menuStrip1); this.MainMenuStrip = this.menuStrip1; this.Name = "Form1"; this.Text = "Form1"; this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } | ||||||
| ||||||
openFileDialog.FilterIndex = 2; openFileDialog.RestoreDirectory = true; if (DialogResult.OK == openFileDialog.ShowDialog()) { m_Bitmap= (Bitmap)Bitmap.FromFile(openFileDialog .FileName,false); this.AutoScroll = true; this.AutoScrollMinSize = new Size((int)(m_Bitmap.Width), (int)m_Bitmap.Height); this.Invalidate(); } } saveFileDialog.FilterIndex = 1; saveFileDialog.RestoreDirectory = true; if (DialogResult.OK == saveFileDialog.ShowDialog()) { m_Bitmap.Save(saveFileDialog.FileName); } } private void menuItemExit_Click(object sender, EventArgs e) { this.Close(); } private void Form1_Load(object sender, EventArgs e) { } private void Form1_Paint(object sender, PaintEventArgs e) { Graphics gra = e.Graphics; gra.DrawImage(m_Bitmap,new Rectangle(this.AutoScrollPosition.X,this.AutoScrollPosition.Y,(int)(m_Bitmap.Width),(int)(m_Bitmap.Height))); } } } | ||||||
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论