分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
GDI+ 是 Windows XP 操作系统中提供二维矢量图形、图像处理和版式的部分。GraphicsDevice Interface Plus也就是图形设备接口,提供了各种丰富的图形图像处理功能;在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像,图形图像处理用到的主要命名空间是System . Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等。
一、GDI+相关命名空间、类、结构
1、主要有由以下几个命名空间组成
System.Drawing; 核心的命名空间,定义了基本的绘制类型如:(字体、钢笔、画笔、Graphics)
System.Drawing.Drawing2D; 提供了一组操作二维矢量图和几何图形的类型
System.Drawing.Printing; 打印相关类型
System.Drawing.Imaging; 操作图像的一组类型
System.Drawing.Text; 操作字体的一组类型
System.Drawing.Graphics :封装一个 GDI+ 绘图图面,Graphics 类提供将对象绘制到显示设备的方法.
System.Drawing.Image : 为源自bitmap 和 metafile 的类提供功能的抽象基类
System.Drawing.Bitmap :封装 GDI+ 位图,此位图由图形图像及其属性的像素数据组成。
Bitmap 是用于处理由像素数据定义的图像的对象
System.Drawing.Imaging.Metafile :定义图形图元文件。图元文件包含描述一系列图形操作的记录, 这些操作可以被记录(构造)和被回放(显示)。此类不能继承
System.Drawing.Font :定义特定的文本格式,包括字体、字号和字形属性。无法继承此类。
System.Drawing.Brush :定义用于填充图形形状(如矩形、椭圆、饼形、多边形和封闭路径)的内部的对象
System.Drawing.Color :表示 ARGB(一种色彩空间,也就是RGB色彩空间附加上Alpha(透明度)通道,常见于32位位图的存储结构) 颜色
System.Drawing.Drawing2D.Matrix :封装表示几何变换的 3 x 3 仿射矩阵。无法继承此类。
System.Windows.Forms.TextRenderer :提供用于测量和呈现文本的方法。无法继承此类。
双缓冲:为了避免闪屏,先把要显示的图象在内存实现,然后把实现后的图象一起传到要显示的区域。
2、常用类型
主要类型
Graphics、Pen、Brush、Color、Font、Region、StringFormat、Point、Rectangle、Size等。
Graphics对象
(1)利用窗体或控件的Paint事件的参数PaintEventArgs创建Graphics对象。
(2)使用窗体或控件的CreateGraphics方法
Graphics g=this.CreateGraphics();
(3)使用Image的派生类创建Graphics对象。使用Image的任何派生类均可以生成相应的Graphics对象,这种方法一般适用于在C#中对图像进行处理的场合。
Bitmap b=new Bitmap("Mybmp.bmp");
Graphics g=Graphics.FromImage(b);
Pen对象
Pen类的构造函数有四种,使用方法如下。
(1)创建某一颜色的Pen对象:public Pen(Color)
(2)创建某一刷子样式的Pen对象:public Pen(Brush)
(3)创建某—刷子样式并具有相应宽度的Pen对象:publicPen(Brush,float)
(4)创建某一颜色和相应宽度的Pen对象:public Pen(Color,float)
Pen对象的常用属性
(1)Alignment属性:用来获取或设置此Pen对象的对齐方式。
(2)Color属性:用来获取或设置此Pen对象的颜色。
(3)Width属性:用来获取或设置此Pen对象的宽度。
(4)DashStyle属性:用来获取或设置通过此Pen对象绘制的虚线的样式。
(5)DashCap属性:用来指定虚线两端风格,是一个DashCap枚举型的值。
(6)StartCap属性:用来获取或设置通过此Pen对象绘制的直线起点的帽样式。
(7)EndCap属性:用来获取或设置通过此Pen对象绘制的直线终点的帽样式。
(8)PenType属性:用来获取用此Pen对象绘制的直线的样式。
Font对象
Font用于定义特定的文本格式,包括字体、字号和字形属性。
下表列举了常用方法和属性。
下面这行代码将构建一个10磅大小的宋体字体。
System.Drawing.Font f1 = newSystem.Drawing.Font("宋体",10);
Image对象
Image是为源自Bitmap和Metafile的类提供功能的抽象基类。下表列举了常用的方法和属性。
Image不可以实例化,但可以通过方法来构造:
System.Drawing.Image img1 =System.Drawing.Image.FromFile(Server.MapPath("~/logo.gif"));
Image是基类,封装了很多有用的属性和方法,而实际运用时,尤其在生成或者修改图像的时候,一般用其派生类Bitmap表示内存中的图形。Bitmap是用于处理由像素数据定义的图像的对象,是图像处理开发中最常用的对象。用户可以通过多种途径构造Bitmap对象。
System.Drawing.Bitmap bmp1 = newSystem.Drawing.Bitmap(Server.MapPath("~/logo.gif")); // 通过文件构造
System.Drawing.Bitmap bmp2 = newSystem.Drawing.Bitmap(300,200)