江西理工大学软件学院
计算机类课程实验报告
课程名称:    C#程序设计   
    级:    11软会4     
    名:      黄健       
    号:    11222122     
江西理工大学软件学院
实验
实验名称
                  GDI+编程
实验日期
2013-5-30
实验成绩
实验目的、要求及内容
一、实验目的:
1、创建Graphics对象;
2、使用Graphics对象绘制线条和形状、呈现文本或显示与操作图像
2、实验内容
1、创建Graphics类的实例的对象,使用Graphics对象绘制线条和形状。
1)新建Windows应用程序。
2)添加一个按钮,双击按钮,添加绘图程序。
3)运行程序,观察运行结果。
让圆在屏幕上随机移动,当圆接触到边缘后就改变方向。修改和运行程序,观察运行结果。
添加两个按钮,实现清除和文本测试。
2、操作图像,实现图片的打开、保存等功能
以编程方式在操作菜单项下增加放大缩小子菜单项,以当前图像大小的10%的比例实现图片的缩放功能。
实验环境
地点:3423机房
C#环境:1VS2010
        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:操作图像,实现图片的打开、保存等功能
相关主要代码:
1Form1.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();
        }
    #endregion   
        private System.Windows.Forms.MenuStrip menuStrip1;
        private System.Windows.Forms.ToolStripMenuItem FileToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem menuItemOpen;
        private System.Windows.Forms.ToolStripMenuItem menuItemSave;
        private System.Windows.Forms.ToolStripMenuItem menuItemExit;
        private System.Windows.Forms.ToolStripMenuItem OpToolStripMenuItem;
        private System.Windows.Forms.ToolStripMenuItem menuItemInvert;
        private System.Windows.Forms.ToolStripMenuItem menuItemGray;
        private System.Windows.Forms.ToolStripMenuItem menuItemBright;
    }
}   
}2.Form.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace myImage
{
    public partial class Form1 : Form
    {
        public Bitmap m_Bitmap=null;
        public Form1()
        {
            InitializeComponent();
            //m_Bitmap = new Bitmap(@"C:\A.bmp");
        }
        private void FileToolStripMenuItem_Click(object sender, EventArgs e)
        {
        }
        private void menuItemOpen_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();
            openFileDialog.Filter = "Bitmap文件(*.bmp)|*.bmp|Jpeg文件(*.Jpg)|*.jpg|所有合适的文件(*.bmp/*.jpg)|*.bmp/*.jpg";
            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小时内删除。