C#网络应用编程基础 教学课件 ppt 作者 马骏2 第09章 二维图形图像处理

上传人:E**** 文档编号:89347283 上传时间:2019-05-23 格式:PPT 页数:86 大小:613.50KB
返回 下载 相关 举报
C#网络应用编程基础 教学课件 ppt 作者  马骏2 第09章 二维图形图像处理_第1页
第1页 / 共86页
C#网络应用编程基础 教学课件 ppt 作者  马骏2 第09章 二维图形图像处理_第2页
第2页 / 共86页
C#网络应用编程基础 教学课件 ppt 作者  马骏2 第09章 二维图形图像处理_第3页
第3页 / 共86页
C#网络应用编程基础 教学课件 ppt 作者  马骏2 第09章 二维图形图像处理_第4页
第4页 / 共86页
C#网络应用编程基础 教学课件 ppt 作者  马骏2 第09章 二维图形图像处理_第5页
第5页 / 共86页
点击查看更多>>
资源描述

《C#网络应用编程基础 教学课件 ppt 作者 马骏2 第09章 二维图形图像处理》由会员分享,可在线阅读,更多相关《C#网络应用编程基础 教学课件 ppt 作者 马骏2 第09章 二维图形图像处理(86页珍藏版)》请在金锄头文库上搜索。

1、第9章 二维图形图像处理,9.1 GDI+概述 9.2 绘制基本图形 9.3 图像处理,9.1 GDI+概述, GDI+:Graphics Device Interface (图形设备接口),它提供了高级图形图像处理功能 在C#中,通过一套部署为托管代码的类来展现提供的图 形图像处理功能,这套类被称为GDI+的托管类。利用 GDI+可以轻松实现颜色渐变、透明处理、纹理处理、拉伸和缩放等多种高级功能。 ,GDI+主要提供了三类服务: 1.二维矢量图形 2.图像处理 3.文字显示, 在C#中,所有图形图像处理功能都包含在以下名称空间下: 1.System.Drawing名称空间 提供了对GDI+基

2、本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等。,9.1 GDI+概述(续),2.System.Drawing.Drawing2D名称空间 提供了高级的二维和矢量图形功能。主要有:梯度型画刷、Matrix类(用于定义几何变换)和GraphicsPath类等。,3.System.Drawing.Imaging名称空间 提供了高级 图像处理功能。 4.System.Drawing.Text名称空间 提供了高级 字体和文本排版功能,9.1 .1 GDI+使用的坐标系,1. GDI+坐标系中的基本结构

3、Point表示某个特定位置相对于原点的水平和垂直距离。例如: Point p = new Point (1,1); Size也有两个整型属性来表示水平和垂直距离Width和Height。例如: Size s = new Size (5,5); Rectangle是用来指定矩形的坐标的,它由一个Point和一个Size 组成,其中Point表示矩形左上角,Size表示矩形大小。,9.1 .1 GDI+使用的坐标系(续),例如: 1) 在构造函数中分别指定x坐标、y坐标、宽度和高度。 Rectangle r1 = new Rectangle (1,2,5,6); 2) 在构造函数中指定Point位

4、置和Size结构。 Point p = new Point (1,2); Size s = new Size (5,6); Rectangle r2 = new Rectangle (p, s);,9.1 .1 GDI+使用的坐标系(续),2.GDI+中坐标系的分类 世界坐标系 设备坐标系 页面坐标系,9.1 .1 GDI+使用的坐标系(续),【例】不同坐标系之间的转换示例 private void Form1_Paint(object sender, PaintEventArgs e) Graphics myGraphics = e.Graphics; myGraphics.Translat

5、eTransform(0.5F, 0.5F); myGraphics.PageUnit = GraphicsUnit.Inch; Pen myPen = new Pen(Color.Black, 1 / myGraphics.DpiX); myGraphics.DrawLine(myPen, 0, 0, 2, 2); ,9.1.2 Graphics类,Graphics类包含在System.Drawing名称空间下,它提供了 简单的图形图像处理功能。在绘制图形图像前,首先必须创建 Graphics对象,然后利用这个对象绘制直线、曲线、椭圆等图 形图像。,有三种常见的创建Graphics对象的方法

6、。 1.在窗体或控件的Paint事件中获取Graphics对象。例如: private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) Graphics g = e.Graphics; ,2.通过当前窗体的CreateGraphics方法,把当前窗体的画笔、字体、颜色作为默认值,获取对Graphics对象的引用。 例如: Graphics g; g = this.CreateGraphics(); ,9.1.2 Graphics类(续),3.从继承自图像的任何对象创建Graphics对象, 例如: B

7、itmap myBitmap = new Bitmap(“C:mytest1PicsmyPic.bmp“); Graphics g = Graphics.FromImage(myBitmap);,9.1.3 颜色,颜色是进行图形操作的基本要素,它封装在 System.Drawing.Color结构中。人眼可以分辨的任何颜色都 是由一定的红、绿、蓝三色光组成。任何一种颜色都可以有 四个分量,分别是:R、G、B、A。其中: R:红色,取值范围0255,0表示没有红色成分,255为饱和红色; G:绿色,取值范围0255,0表示没有绿色成分,255为饱和绿色; B:蓝色,取值范围0255,0表示没有蓝

8、色成分,255为饱和蓝色; A:Alpha值,即透明度,取值范围0255,0表示完全透明,255表示完全不透明。,在代码中声明颜色的方式常用有两种: 1.调用静态方法Color.FromArgb()指定任意颜色,这种方法有两种常用形式。 第一种形式为直接指定三种颜色,方法原型为: Public static Color FromArgb (int red,int green,int blue); 三个参数分别表示R、G、B三色,Alpha值使用默认值255,即完全不透明。例如: Color red = Color.FromArgb(255, 0, 0); 第二种形式为四个参数,方法原型为: P

9、ublic static Color FromArgb (int alpha,int red,int green, int blue); 四个参数分别表示透明度、R、G、B三色值。,9.1.3 颜色(续),2.系统预定义颜色 System.Drawing.Color结构中提供了许多静态性, 每个属性返回一个命名颜色,在Color结构中已经预定 义了141种颜色,可以直接使用。例如: this.BackColor = Color.White;,9.1.3 颜色(续),9.1.4 画笔和画刷,在GDI+中,可以使用画笔和画刷绘制或填充图形、文本和图像。笔是Pen类的实例,用于绘制各种直线、空心图形

10、和实心图形等。画刷是从Brush类派生的任何类的实例,用于填充形状或绘制文本。,1. 画笔(Pen) 画笔可用于绘制绘制具有指定宽度和样式的直线、曲线或轮廓形状。 下面的示例说明如何创建一支基本的蓝色画笔: Pen myPen = new Pen(Color.Blue); Pen myPen = new Pen(Color.Blue, 10.5f); 也可以从画刷对象创建画笔对象,例如: SolidBrush myBrush = new SolidBrush(Color.Red); Pen myPen = new Pen(myBrush); Pen myPen = new Pen(myBrus

11、h, 5);,【例】画笔(Pen)的用法演示示例。 添加名称空间引用:using System.Drawing.Drawing2D, 并用如下代码添加Form1_Paint事件。 Graphics g = e.Graphics; /创建Graphics对象 Pen blackpen = new Pen(Color.Black, 10.0f); /创建一支黑色的画笔 /绘制字符串 g.DrawString(“黑色,宽度为10.0“, this.Font, Brushes.Black, 5, 5); /绘制宽度为10.0f的黑色直线 g.DrawLine(blackpen, new Point(1

12、10, 12), new Point(400, 12); /创建一支红色的画笔 Pen redpen = new Pen(Color.Red, 5.0f); /绘制字符串 g.DrawString(“红色,宽度为5“, this.Font, Brushes.Black, 5, 25); /绘制宽度为5的红色直线 g.DrawLine(redpen, new Point(110, 30), new Point(400, 30);,9.1.4 画笔和画刷(续),/创建一支蓝色的笔 Pen bluepen = new Pen(Color.Blue,6); /定义直线的样式 bluepen.Start

13、Cap = LineCap.Flat; bluepen.EndCap = LineCap.ArrowAnchor; /绘制字符串 g.DrawString(“蓝色箭头线”, this.Font, Brushes.Black, 5, 45); /绘制宽度为6的蓝色箭头线 g.DrawLine(bluepen, new Point(110, 50), new Point(400, 50); /再创建一支黑色的画笔 Pen iblackpen = new Pen(Color.Black, 2.0f) /定义直线的样式 iblackpen.DashStyle = DashStyle.Custom; i

14、blackpen.DashPattern = new float 4, 4 ; iblackpen.EndCap = LineCap.NoAnchor; /绘制字符串 g.DrawString(“自定义虚线“, this.Font, Brushes.Black, 5, 65);,9.1.4 画笔和画刷(续),/绘制宽度为2的自定义虚线 g.DrawLine(iblackpen, new Point(110, 70), new Point(400, 70); /再创建一支红色的笔 Pen iredpen = new Pen(Color.Red, 2.0f); /定义直线的样式 iredpen.D

15、ashStyle = DashStyle.Dot; /绘制字符串 g.DrawString(“点划线“, this.Font, Brushes.Black, 5, 85); /绘制宽度为2的点划线 g.DrawLine(iredpen, new Point(110, 90), new Point(400, 90);,9.1.4 画笔和画刷(续),9.1.4 画笔和画刷(续),2.画刷(Brush) 画刷是可以与Graphics对象一起使用来创建实心形状和 呈现文本的对象。可以用来填充各种图形形状,如矩形、椭 圆、饼型图和多边形等。,1)使用SolidBrush类定义单色画刷 SolidBrus

16、h类用于定义单色画刷。该类可以填充图形, 比如矩形、椭圆、多边形和路径。 【例】单色画刷演示示例。 添加名称空间引用:using System.Drawing.Drawing2D; 并 用如下代码添加Form1_Paint事件。 Graphics g = e.Graphics; SolidBrush mySolidBrush = new SolidBrush(Color.Red); g.FillEllipse(mySolidBrush, 30,30, 130, 100);,9.1.4 画笔和画刷(续),2)使用HatchBrush类填充简单图案 HatchBrush类提供的画刷可以用各种图案填充图形。通过 Hatch类型可以设置影线样式。在创建影线的画刷时,能设定前 景色、背景色和影线样式。有56种不同的影线样式枚举。 【例】填充简单图案示例。 添加名称空间引用:using System.Drawing.Drawing2D;并用 如

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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