C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第14章 图形图像与多媒体编程

上传人:E**** 文档编号:89188424 上传时间:2019-05-21 格式:PPT 页数:88 大小:1.01MB
返回 下载 相关 举报
C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第14章  图形图像与多媒体编程_第1页
第1页 / 共88页
C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第14章  图形图像与多媒体编程_第2页
第2页 / 共88页
C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第14章  图形图像与多媒体编程_第3页
第3页 / 共88页
C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第14章  图形图像与多媒体编程_第4页
第4页 / 共88页
C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第14章  图形图像与多媒体编程_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第14章 图形图像与多媒体编程》由会员分享,可在线阅读,更多相关《C#网络编程及应用 教学课件 ppt 作者 刘瑞新 第14章 图形图像与多媒体编程(88页珍藏版)》请在金锄头文库上搜索。

1、第十四章 图形图像与多媒体编程,14.1 GDI+概述 14.2 绘制图形 14.3 图像的显示与保存 14.4 动画设计 14.5 Web应用程序中的图形图像操作 14.6 音频与视频播放,14.1 GDI+概述, GDI+:Graphics Device Interface Plus,它提供了各种丰富的图形图像处理功能 在C#.NET中,使用GDI+处理二维(2D)的图形和图像,使用DirectX处理三维(3D)的图形图像。 GDI+主要有“二维矢量图形”、“图像处理”和“版式”三部分组成。 GDI+提供了存储基元自身相关信息的类和结构、存储基元绘制方式相关信息的类,以及实际进行绘制的类。

2、 GDI+ 为使用各种字体、字号和样式来显示文本这种复杂任务提供了大量的支持。 其他高级功能,在C#中,所有图形图像处理功能都包含在以下名称空间下: 1. System.Drawing名称空间 提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等。 2. System.Drawing.Drawing2D名称空间 提供了高级的二维和矢量图形功能。主要有梯度型画刷、Matrix类(用于定义几何变换)和GraphicsPath类等。 3. System.Drawing.Imaging名称空

3、间 提供了高级 GDI+ 图像处理功能。 4. System.Drawing.Text名称空间 提供了高级 GDI+ 字体和文本排版功能,14.1.1 Graphics类,Graphics类包含在System.Drawing名称空间下。要进行图形处理,必须首先创建Graphics对象,然后才能利用它进行各种画图操作。 创建Graphics对象的形式有: 1.在窗体或控件的Paint事件中直接引用Graphics对象 每一个窗体或控件都有一个Paint事件,该事件的参数中包含了当前窗体或控件的Graphics对象,在为窗体或控件创建绘制代码时,一般使用此方法来获取对图形对象的引用。 Privat

4、e void Form_Paint(object sender, System.Windows.Forms.PaintEventArgs e) Graphics g=e.Graphics; ,2.从当前窗体获取对Graphics对象的引用 把当前窗体的画刷、字体、颜色作为缺省值获取对Graphics对象的引用,注意这种对象只有在处理当前Windows窗口消息的过程中有效。如果想在已存在的窗体或控件上绘图,可以使用此方法。例如: Graphics g=this.CreatGraphics(); 3.从继承自图像的任何对象创建Graphics对象。 此方法在需要更改已存在的图像时十分有用。例如:

5、Bitmap bitmap=new Bitmap(“C:testa1.bmp“); Graphics g=Graphics.FromImage(bitmap);,14.1.2 颜色,颜色是进行图形操作的基本要素。任何一种颜色都可以由四个分量决定,每个分量占据一个字节: R:红色,取值范围0255,255为饱和红色。 G:绿色,取值范围0255,255为饱和绿色。 B:蓝色,取值范围0255,255为饱和蓝色。 A:Alpha值,即透明度。取值范围0255,0为完全透明,255为完全不透明。 在System.Drawing名称空间下,有一个Color结构类型,可以使用下列方法创建颜色对象: 使用

6、FromArgb指定任意颜色 这个方法有两种常用的形式,第一种形式是直接指定三种颜色,方法原型为:, 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

7、 static Color FromArgb(int alpha,int red,int green,int blue) 四个参数分别表示透明度和R、G、B三色值。,使用系统预定义颜色 在Color结构中已经预定义了141种颜色,可以直接使用,例如: Color myColor; myColor = Color.Red; myColor = Color.Aquamarine; myColor = Color.LightGoldenrodYellow;,14.1.3 笔和画笔,在GDI+中,可使用笔对象和画笔对象呈现图形、文本和图像。笔是Pen类的实例,用于绘制线条和空心形状。画笔是从Brush

8、类派生的任何类的实例,用于填充形状或绘制文本。 1. 笔(Pen) 笔可用于绘制绘制具有指定宽度和样式的线条、曲线以及勾勒形状轮廓。 下面的示例说明如何创建一支基本的黑色笔: 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 Pen(myBrush, 5);,笔(Pen)的用法演示示例。

9、 1) 新建一个Windows应用程序,适当加宽窗体宽度。然后切换到代码方式,添加名称空间引用: using System.Drawing.Drawing2D; 2) 添加Form1_Paint事件代码。 private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics; Pen pen = new Pen(Color.Blue,10.5f); g.DrawString(“蓝色,宽度为10.5“,this.Font, new SolidBrush(Colo

10、r.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 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.Draw

11、String(“红色箭头线“,this.Font, new SolidBrush(Color.Black),5,45); g.DrawLine(pen,new Point(110,50),new Point(380,50); pen.DashStyle = DashStyle.Custom; pen.DashPattern=new float4,4; pen.Width=2; pen.EndCap=LineCap.NoAnchor; g.DrawString(“自定义虚线“,this.Font, new SolidBrush(Color.Black),5,65); g.DrawLine(pen

12、,new Point(110,40),new Point(380,70); pen.DashStyle=DashStyle.Dot; g.DrawString(“点划线“,this.Font, new SolidBrush(Color.Black),5,85); g.DrawLine(pen,new Point(110,90),new Point(380,90); ,运行结果,2、画刷(Brush) 画刷是可与Graphics对象一起使用来创建实心形状和呈现文本的对象。可以用画笔填充各种图形形状,如矩形、椭圆、扇形、多边形和封闭路径等。 几种不同类型的画刷: SolidBrush 画刷最简单的

13、形式,用纯色进行绘制。 HatchBrush 类似于 SolidBrush,但是可以利用该类从大量预设的图案中选择绘制时要使用的图案,而不是纯色。 TextureBrush 使用纹理(如图像)进行绘制。 LinearGradientBrush 使用沿渐变混合的两种颜色进行绘制。 PathGradientBrush 基于编程者定义的唯一路径,使用复杂的混合色渐变进行绘制。,(1)使用SolidBrush类定义单色画笔 SolidBrush类用于定义单色画笔。该类只有一个构造函数,带有一个Color类型的参数。 下面的示例说明如何在窗体上绘制一个纯红色的椭圆。该椭圆将符合为其提供的矩形的大小(此例

14、中为表示整个窗体的ClientRectangle)。 【例】单色画刷演示示例。 private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) Graphics g =e.Graphics; SolidBrush myBrush = new SolidBrush(Color.Red); g.FillEllipse(myBrush, this.ClientRectangle); ,运行效果,(2)使用HatchBrush类绘制简单图案 HatchBrush类用于从大量预设的图案中选择绘制时要使用的图案,

15、而不是纯色。 下面的示例说明如何创建一个HatchBrush,它使用90%的阴影,前景色与背景色的比例为90:100,并使用白色作为前景色,黑色作为背景色。 【例】填充简单图案示例。 private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics; System.Drawing.Drawing2D.HatchBrush aHatchBrush = new System.Drawing.Drawing2D.HatchBrush(System.Drawing

16、. Drawing2D.HatchStyle.Percent90, Color.White, Color.Black); g.FillEllipse(aHatchBrush, this.ClientRectangle); ,运行效果:,(3)使用TextureBrush类绘制复杂图案 TextureBrush类允许使用一幅图像作为填充的样式。该类提供了5个重载的构造函数,分别是: Public TextureBrush(Image) Public TextureBrush(Image,Rectangle) Public TextureBrush(Image,WrapMode) Public TextureBrush(Image,Rectangle,ImageAttributes) Public TextureBrush(Image,WrapMode,Rectangle) 其中:Image:Image对象用于指定画笔的填充图案。 Rectangle:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号