C# 学习笔记一(图形绘制基础1 GDI+)

         【做了近三年多的程序开发这还是第一次在CSDN上写点东西。】

        之前一个同学去面试工作的时候遇到了这样的一个问题,用GDI+编写一个正弦波的程序并且能动,能保存图像的。这对于很多依托用各种图形控件开发的人应该是一个不大不小的难题把。看来一些基础的东西平时还是得掌握一些的。

        GDI+是微软在Windows 2000以后操作系统中提供的新的图形设备接口,其通过一套部署为托管代码的类来展现,这套类被称为GDI+的“托管类接口”,GDI+主要提供了三类服务: (1) 二维矢量图形、(2) 图像处理、(3) 文字显示。我们要进行图形编程,就必须先讲解Graphics类,同时我们还必须掌握Pen、Brush和Rectangle这几种类。

       Graphics类:

       Graphics类封装一个GDI+绘图图面,提供将对象绘制到显示设备的方法。画图方法都被包括在Graphics类中,在画任何对象时,我们首先要创建一个Graphics类实例,这个实例相当于建立了一块画布,有了画布才可以用各种画图方法进行绘图。

         绘图程序的设计过程一般分为两个步骤:(一)创建Graphics对象;(二)使用Graphics对象的方法绘图、显示文本或处理图像。

           而创建Graphics有三种方法。

方法一、利用控件或窗体的Paint事件中的PaintEventArgs。注:Paint事件在控件重绘时发生。

例如:

//窗体的Paint事件的响应方法
private void form1_Paint(object sender, PaintEventArgs e)
{
       Graphics g = e.Graphics;
}
//也可以直接重载控件或窗体的OnPaint方法,具体代码如下所示:
protected override void OnPaint(PaintEventArgs e)
{
       Graphics g = e.Graphics;
}

方法二、调用某控件或窗体的CreateGraphics方法 注:在已存在的窗体或控件上绘图,通常会使用此方法。

例如:

Graphics g = this.CreateGraphics();

方法三、调用Graphics类的FromImage静态方法

例如:

//名为“g1.jpg”的图片位于当前路径下
Image img = Image.FromFile("g1.jpg");//建立Image对象
Graphics g = Graphics.FromImage(img);//创建Graphics对象

有了一个Graphics的对象引用后,就可以利用该对象的成员进行各种各样图形的绘制.

Graphics类常用方法

名称

说明

DrawArc

画弧。

DrawBezier

画立体的贝尔塞曲线。

DrawBeziers

画连续立体的贝尔塞曲线。

DrawClosedCurve

画闭合曲线。

DrawCurve

画曲线。

DrawEllipse

画椭圆。

DrawImage

画图像。

DrawLine

画线。

DrawPath

通过路径画线和曲线。

DrawPie

画饼形。

DrawPolygon

画多边形。

DrawRectangle

画矩形。

DrawString

绘制文字。

FillEllipse

填充椭圆。

FillPath

填充路径。

FillPie

填充饼图。

FillPolygon

填充多边形。

FillRectangle

填充矩形。

FillRectangles

填充矩形组。

FillRegion

填充区域。









你可能感兴趣的:(C#,GDI+)