第一讲GDI绘图基础ppt课件.ppt
《第一讲GDI绘图基础ppt课件.ppt》由会员分享,可在线阅读,更多相关《第一讲GDI绘图基础ppt课件.ppt(33页珍藏版)》请在三一文库上搜索。
1、C#图形图象程序设计,西源软件培训中心,目标,掌握GDI+绘制图形基础 掌握GDI+提供的库函数,GDI+绘图基础,图形设备接口 GDI+:Graphics Device Interface Plus,它提供了各种丰富的图形图像处理功能 在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像 GDI+主要有二维矢量图形、图像处理和版式三部分组成 GDI+提供了存储基元自身相关信息的类和结构、存储基元绘制方式相关信息的类,以及实际进行绘制的类 GDI+ 为使用各种字体、字号和样式来显示文本这种复杂任务提供了大量的支持 其他高级功能,图形图像处理中
2、常常调用的名称空间: System:包括常用基础数据类型和24个子名称空间 System.Drawing:提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等 System.Drawing.Drawing2D:提供了高级的二维和矢量图形功能。主要有梯度型画刷、Matrix类(用于定义几何变换)和GraphicsPath类等 System.Drawing.Imaging:提供了高级 GDI+ 图像处理功能 System.WinForms:提供许多与数据处理相关的结构的类 System.
3、Timers:提供精确的计时操作 System.Drawing.Text:提供了高级 GDI+ 字体和文本排版功能,GDI+绘图基础,创建Graphics对象 Graphics类包含在System.Drawing名称空间下。要进行图形处理,必须首先创建Graphics对象,然后才能利用它进行各种画图操作,即先创建Graphics对象再使用该对象的方法绘图、显示文本或处理图像。 创建Graphics对象的形式有: 1.在窗体或控件的Paint事件中直接引用Graphics对象 每一个窗体或控件都有一个Paint事件,该事件的参数中包 含了当前窗体或控件的Graphics对象,在为窗体或控件创建绘
4、 制代码时,一般使用此方法来获取对图形对象的引用: Private void Form_Paint(object sender, System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics; ,GDI+绘图基础,2.利用窗体或某个控件的CreateGraphics方法 此方法所建对象是该控件或窗体的绘图区域,可把当前窗体的画刷、字体、颜色作为缺省值获取对Graphics对象的引用, 注意这种对象只有在处理当前Windows窗口消息的过程中有效;如果想在已存在的窗体或控件上绘图,可以使用此方法。 例如: Graphics g=th
5、is.CreatGraphics();,3.从继承自图像的任何对象创建Graphics对象 此方法在需要更改已存在的图像时十分有用,例如: Bitmap bitmap = new Bitmap(”C:testa1.bmp”); Graphics g = Graphics.FromImage( bitmap );,GDI+绘图基础,在图形图像处理程序设计中,与Graphics对象一起使用的用户对象常有: Pen:用于绘制线条、勾勒形状轮廓等; Brush:用于填充图形区域; Font:提供有关在呈现文本时要使用什么形状的说明; Color:该结构表示要显示的不同颜色 注意:由于图像对象非常占资源
6、,所以在不用这些对象时要用Dispose方法及时释放资源,GDI+绘图基础,附: 颜色 颜色是进行图形操作的基本要素。任何一种颜色都可以由四个分量决定,每个分量占据一个字节: R:红色,取值范围0255,255为饱和红色 G:绿色,取值范围0255,255为饱和绿色 B:蓝色,取值范围0255,255为饱和蓝色 A:Alpha值,即透明度。取值范围0255,0为完全透明,255为完全不透明 在System.Drawing名称空间下,有一个Color结构类型,包含系统已定义的颜色种类。 可以使用下列方法创建颜色对象: 使用FromArgb指定任意颜色 这个方法有两种常用的形式:,GDI+绘图基础
7、,第一种形式是直接指定三种颜色,方法原型为: public static Color FromArgb( int red, int green, int blue ) 三个参数分别表示R、G、B三色,Alpha值使用缺省值255,即 完全不透明;例如: Color red = Color.FromArgb( 255, 0, 0); Color green = Color.FromArgb( 0, 255, 0); Color blue = Color.FromArgb( 0, 0, 0xff); 其中,0xff为十六进制表示形式。 第二种形式使用四个参数,格式为: public static
8、Color FromArgb( int alpha, int red, int green, int blue ) 四个参数分别表示透明度和 R、G、B三色值。,GDI+绘图基础,使用系统预定义颜色 在Color结构中已经预定义了141种颜色,可以直接使 用,例如: Color myColor; myColor = Color.Red; myColor = Color.Aquamarine; myColor = Color.LightGoldenrodYellow;,GDI+绘图基础,用Pen类创建画笔对象,画笔通常具有宽度、样式和颜色三种属性。 1.Pen对象的创建: public Pen(
9、 Color color ); public Pen( Color color, float width ); public Pen( Brush brush ); public Pen( Brush brush, float width ); 如: Pen myPen = new Pen( Color.Black ); Pen myPen = new Pen( Color.Black, 5 ); SolidBrush myBrush = new SolidBrush( Color.Red ); Pen myPen = new Pen( myBrush); Pen myPen = new Pe
10、n( myBrush, 5 );,画笔对象,2.Pen对象的属性: 画笔对象的属性用于返回或设置画笔对象的颜色、画线样式、画线始点及终点的样式等。常用属性如下: Color: DashCap: DashStyle: EndCap: PenType: StartCap: Width:,画笔对象,1) 新建一个Windows应用程序,适当加宽窗体宽度。然后切换到代码方式,添加名称空间引用: using System.Drawing.Drawing2D; 2) 添加Form1_Paint事件代码。 private void Form1_Paint(object sender, System.Wind
11、ows.Forms.PaintEventArgs e) Graphics g = e.Graphics; Pen pen = new Pen( Color.Blue, 10.5f ); g.DrawString( “蓝色,宽度为10.5“, this.Font, new SolidBrush(Color.Black), 5, 5 ); g.DrawLine( pen, new Point(110,10), new Point(380,10) ); pen.Width=2; pen.Color=Color.Red; g.DrawString( “红色,宽度为2“, this.Font, new
12、SolidBrush(Color.Black), 5, 25 );,示例,g.DrawLine( pen, new Point(110,30), new Point(380,30) ); pen.StartCap = LineCap.Flat; pen.EndCap = LineCap.ArrowAnchor; pen.Width = 9; g.DrawString( “红色箭头线“, this.Font, new SolidBrush(Color.Black), 5, 45); g.DrawLine( pen,new Point(110,50), new Point(380,50); pen
13、.DashStyle = DashStyle.Custom; pen.DashPattern = new float 4,4; pen.Width = 2; pen.EndCap = LineCap.NoAnchor; g.DrawString( “自定义虚线“, this.Font, new SolidBrush(Color.Black), 5, 65 ); g.DrawLine( pen, new Point(110,70), new Point(380,70) ); pen.DashStyle = DashStyle.Dot; g.DrawString(“点划线“, this.Font,
14、 new SolidBrush(Color.Black), 5, 85); g.DrawLine( pen, new Point(110,90), new Point(380,90); ,示例,运行结果,画刷是可与Graphics对象一起使用来创建实心形状和呈现文本的对象。可以用画刷填充各种图形形状,如矩形、椭圆、扇形、多边形和封闭路径等。 几种不同类型的画刷: SolidBrush:画刷最简单的形式,用纯色进行绘制 HatchBrush:类似于 SolidBrush,但是可以利用该类从大量预设的图案中选择绘制时要使用的图案,而不是纯色 TextureBrush:使用纹理(如图像)进行绘制 L
15、inearGradientBrush:使用沿渐变混合的两种颜色进行绘制 PathGradientBrush :基于编程者定义的唯一路径,使用复杂的混合色渐变进行绘制,画刷对象,(1)使用SolidBrush类定义单色画笔 SolidBrush类用于定义单色画笔。该类只有一个构造函 数,带有一个Color类型的参数。 下面的示例说明如何在窗体上绘制一个纯红色的椭圆。 该椭圆将符合为其提供的矩形的大小(此例中为表示整个 窗体的ClientRectangle)。 例: private void Form1_Paint(object sender, System.Windows.Forms.Paint
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第一 GDI 绘图 基础 ppt 课件
链接地址:https://www.31doc.com/p-3111545.html