画图的学习

    以前在论坛上总是看到许多关于利用C#进行画图的操作,感觉很奇特!现在,自己也正在接触这一个模块的学习,开始时感觉有点茫然,但学习了一会就感觉思路稍微清晰了些!至少不像开始那样的茫然;在明白了原理之后,许多事情就清晰了许多!下面是我对这个知识点的简单总结(不足之处还望指教):

         实现画图功能所需要的一些命名空间,如下:

using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Drawing.Drawing2D;
using System.Drawing.Text;

类名:

Graphics:该类主要是封装了GDI+绘图画板,是GDI+绘图中最核心的类;

Pen:用来画线、多边形、矩形、弧等外围的轮廓部分;

Brush:用来指定颜色、样式、纹理等填充封闭的图形;

Font:用来描绘字体;

Color:用来描绘颜色,可以是透明或半透明的。

 

 private void button1_Click(object sender, EventArgs e)
        {
            Graphics g = this.CreateGraphics();///创建对象,当然创建对象不止这一种;

            Pen mypen = new Pen(Color.Blue, 2);///创建画笔,宽度:为2;
            g.DrawLine(mypen, 10, 10, 50, 100);///画直线
            mypen.Dispose();///移除操作;
            g.Dispose();
       
        }

          private void button2_Click(object sender, EventArgs e)
        {
            Graphics g = this.CreateGraphics();///创建对象;

            Pen mypen = new Pen(Color.Blue, 2);///创建画笔;
            g.DrawEllipse(mypen, 100, 100, 300, 300);///画圆
            mypen.Dispose();
            g.Dispose();
        }

///对所画的图形进行填充:

/// <summary>
/// 填充圆操作;
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button3_Click(object sender, EventArgs e)
{
System.Drawing.SolidBrush brush1 = new System.Drawing.SolidBrush(System.Drawing.Color.Gray);
System.Drawing.Rectangle rect = new Rectangle(100, 100, 200, 200); ///必须同 g.DrawEllipse(mypen, 100, 100, 200, 200);
///参数一致,否则就会出现偏离的现象;
Graphics g = this.CreateGraphics();
Pen mypen = new Pen(brush1,2);
g.DrawEllipse(mypen, 100, 100, 200, 200);///画圆操作;
g.FillEllipse(brush1,rect);///填充上一步所画的圆;
mypen.Dispose();
g.Dispose();


  }

///在绘画板中绘制文字操作;

private void button4_Click(object sender, EventArgs e)
{
///设置字体操作;
Font font = new System.Drawing.Font("宋体",60,System.Drawing.FontStyle.Bold);
Graphics g = this.CreateGraphics();
string txt = "字体操作";
  Brush brush = new SolidBrush(System.Drawing.Color.Green);///填充颜色;

   System.Drawing.StringFormat myformat = new System.Drawing.StringFormat();
g.DrawString(txt, font, brush,100,110,myformat);///绘制字符串操作;
myformat.Dispose();
  g.Dispose();
}

///填充图像

private void button5_Click(object sender, EventArgs e)
{
OpenFileDialog ofd = new OpenFileDialog();
  ofd.Filter = "Bmp File Bmp.*|*..bmp|All *.*|*.*"; ///对所选的图像进行筛选;
if(ofd.ShowDialog()!=DialogResult.OK){

return;
}
  string path = ofd.FileName;///获取文件名;

   Bitmap image1 = new Bitmap(path);
Graphics g = this.CreateGraphics();
g.DrawImage(image1, 10, 10);
g.Dispose();

}

         通过对这几个操作的学习,让我也收获蛮多的,至少明白了对图像操作的一些原理!并且让我对.NET有了一个新的认识,虽然.NET在学习的初期很容易,因此就有人说.NET很简单;在这里我只想说句:许多事情别只看表面现象!当你对事情的更深层进行分析后你就会明白原来并不是那么的简单。

          我曾听一位老师说过.NET就好比一个金字塔,越往上越困难;当时不怎么理解,但现在我完全理解这句话!

           继续攀登自己人生的高峰!

学习中……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值