C#程序设计 教学课件 ppt 作者 刘克成 等 Ch07

上传人:E**** 文档编号:89384240 上传时间:2019-05-24 格式:PPT 页数:22 大小:100KB
返回 下载 相关 举报
C#程序设计 教学课件 ppt 作者 刘克成 等 Ch07_第1页
第1页 / 共22页
C#程序设计 教学课件 ppt 作者 刘克成 等 Ch07_第2页
第2页 / 共22页
C#程序设计 教学课件 ppt 作者 刘克成 等 Ch07_第3页
第3页 / 共22页
C#程序设计 教学课件 ppt 作者 刘克成 等 Ch07_第4页
第4页 / 共22页
C#程序设计 教学课件 ppt 作者 刘克成 等 Ch07_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《C#程序设计 教学课件 ppt 作者 刘克成 等 Ch07》由会员分享,可在线阅读,更多相关《C#程序设计 教学课件 ppt 作者 刘克成 等 Ch07(22页珍藏版)》请在金锄头文库上搜索。

1、第7章 C#图形图像编程基础,本章主要介绍使用C#进行图形图像编程基础,其中包括GDI+绘图基础、C#图像处理基础以及简单的图像处理技术。 7.1 GDI+绘图基础 7.2 C#图像处理基础,7.1 GDI+绘图基础,编写图形程序时需要使用GDI(Graphics Device Interface,图形设备接口),从程序设计的角度看,GDI包括两部分:一部分是GDI对象,另一部分是GDI函数。GDI对象定义了GDI函数使用的工具和环境变量,而GDI函数使用GDI对象绘制各种图形,在C#中,进行图形程序编写时用到的是GDI+(Graphics Device Interface Plus)版本,G

2、DI+是GDI的进一步扩展,它使编程更加方便。,7.1.1 GDI+概述,GDI+是微软在Windows 2000以后操作系统中提供的新的图形设备接口,其通过一套部署为托管代码的类来展现,这套类被称为GDI+的“托管类接口”,GDI+主要提供了以下三类服务:(1)二维矢量图形:GDI+提供了存储图形基元自身信息的类(或结构体)、存储图形基元绘制方式信息的类以及实际进行绘制的类。 (2)图像处理:大多数图片都难以划定为直线和曲线的集合,无法使用二维矢量图形方式进行处理。因此,GDI+为我们提供了Bitmap、Image等类,它们可用于显示、操作和保存BMP、JPG、GIF等图像格式。 (3)文字

3、显示:GDI+支持使用各种字体、字号和样式来显示文本。,7.1.2 Graphics类,Graphics类封装一个GDI+绘图图面,提供将对象绘制到显示设备的方法,Graphics与特定的设备上下文关联。画图方法都被包括在Graphics类中,在画任何对象(例如:Circle,Rectangle)时,我们首先要创建一个Graphics类实例,这个实例相当于建立了一块画布,有了画布才可以用各种画图方法进行绘图。 绘图程序的设计过程一般分为两个步骤: 一、创建Graphics对象; 二、使用Graphics对象的方法绘图、显示文本或处理图像。,通创建Graphics对象的三种方法,方法一、利用控件

4、或窗体的Paint事件中的PainEventArgs对象。 方法二、调用控件或窗体的CreateGraphics方法 。 方法三、调用Graphics类的FromImage静态方法,由从Image继承的任何对象创建Graphics对象。在需要更改已存在的图像时,通常会使用此方法。,方法一,/窗体的Paint事件的响应方法 private void form1_Paint(object sender, PaintEventArgs e) Graphics g = e.Graphics; ,方法二,例如: Graphics g = this.CreateGraphics(); 注意:此时以this

5、所代表的窗体为画布,也可以使用其他控件对象的引用,创建以控件对象为画布的Graphics对象。,方法三,/建立Image对象,名为“g1.jpg”的图片位于当前路径下 Image img = Image.FromFile(“g1.jpg“); /创建Graphics对象 Graphics g = Graphics.FromImage(img); 注意:此时以文件“g1.jpg”为画布,使用g进行绘制图形时,其图形是绘制在文件“g1.jpg” 上的。,在创建了Graphics对象后,就可以用它开始绘图了,可以画线、填充图形、显示文本等等,其中主要用到的对象还有: Pen:定义用于绘制直线和曲线的

6、对象。 Color:表示 ARGB 颜色。 Font:定义特定的文本格式,包括字体、字号和字形属性。 Brush:定义用于填充图形形状(如矩形、椭圆、饼形、多边形和封闭路径)的内部的对象。 Rectangle:存储一组整数,共四个,表示一个矩形的位置和大小 。 Point:表示在二维平面中定义点的、整数 X 和 Y 坐标的有序对 。 注意:各个对象的构造函数。,7.1.3 常用画图对象,Color对象,在自然界中,颜色大都由透明度(A)和三基色(R,G,B)所组成。在GDI+中,通过Color结构封装对颜色的定义,Color结构中,除了提供(A,R,G,B)以外,还提供许多系统定义的颜色,如P

7、ink(粉颜色),另外,还提供许多静态成员,用于对颜色进行操作。 Color red = Color.FromArgb(255, 0, 0); Color red = Color.FromArgb(120, 255, 0, 0);,1画一个矩形 2画一个弧 3画线 4画椭圆 5输出文本 6填充路径 注意:书中的实例。,7.1.4 基本图形绘制举例,7.1.5 画刷和画刷类型,Brush类型是一个抽象类,所以它不能被实例化,也就是不能直接应用,但是我们可以利用它的派生类,如:HatchBrush、SolidBrush和TextureBrush等。画刷类型一般在System.Drawing命名空间

8、中,如果应用HatchBrush和GradientBrush画刷,需要在程序中引入System.Drawing.Drawing2D命名空间。,画刷和画刷应用举例,1SolidBrush(单色画刷) 2HatchBrush(阴影画刷) 3TextureBrush(纹理画刷) 4LinearGradientBrush和PathGradientBrush(渐变画刷),7.2 C#图像处理基础,本节主要介绍C#图像处理基础知识以及对图像的基本处理方法和技巧,主要包括图像的加载、变换和保存等操作。 7.2.1 C#图像处理概述 7.2.2 图像的输入和保存 7.2.3 图像的拷贝和粘贴 7.2.4 彩色

9、图像处理,7.2.1 C#图像处理概述,1图像文件的类型 GDI+支持的图像格式有BMP、GIF、JPEG、EXIF、PNG、TIFF、ICON、WMF、EMF等,几乎涵盖了所有的常用图像格式,使用GDI+可以显示和处理多种格式的图像文件。 2图像类 GDI+提供了Image、Bitmap和Metafile等类用于图像处理,为用户进行图像格式的加载、变换和保存等操作提供了方便。 (1)Image类:Image类是为Bitmap和Metafile的类提供功能的抽象基类。 (2)Metafile类:定义图形图元文件,图元文件包含描述一系列图形操作的记录,这些操作可以被记录(构造)和被回放(显示)。

10、 (3)Bitmap类:封装GDI+位图,此位图由图形图像及其属性的像素数据组成,Bitmap是用于处理由像素数据定义的图像的对象,,7.2.2 图像的输入和保存,1图像的输入 在窗体或图形框内输入图像有两种方式: (一)在窗体设计时使用图形框对象的Image属性输入;(二)在程序中通过打开文件对话框输入。 2图像的保存 box1.Save(strFileName); 3图像格式的转换 box1.Save(strFileName,System.Drawing.Imaging.ImageFormat.Jpeg);,7.2.3 图像的拷贝和粘贴,图像拷贝和粘贴是图像处理的基本操作之一,通常有两种方

11、法来完成图像的拷贝和粘贴:一种可以使用剪贴板拷贝和粘贴图像,一种使用AxPictureClip控件拷贝和粘贴图像。 1使用剪贴板拷贝和粘贴图像 【例7.8】使用剪贴板拷贝和粘贴图像。 注意:剪贴板的使用步骤。 2使用AxPictureClip控件拷贝和粘贴图像 【例7.9】使用AxPictureClip控件剪切和粘贴图像。 注意:在C#中第三方COM组件的使用方法。,7.2.4 彩色图像处理,1图像的分辨率 2彩色图像变换灰度图像 3灰度图像处理,1图像的分辨率,所谓分辨率就是指画面的解析度,由多少像素构成,数值越大,图像也就越清晰。我们通常所看到的分辨率都以乘法形式表现的,例如800*600

12、,其中“800”表示屏幕上水平方向显示的点数,“600”表示垂直方向的点数。图像分辨率越大,越能表现更丰富的细节。图像的分辨率决定了图像与原物的逼进程度,对同一大小的图像,其像素数越多,即将图像分割的越细,图像越清晰,称之为分辨率高,反之为分辨率低,分辨率的高低取决于采样操作。例如,对于一幅256*256分辨率的图像,采用变换的方法可以实现不同分辨率显示。 【例7.10】将256*256分辨率的图像变换为64*64分辨率。,2彩色图像变换灰度图像,算法说明:将彩色图像像素的颜色值分解为三基色R、G、B,求其和的平均值,然后使用SetPixel方法以该平均值参数生成图像。 【例7.11】彩色图像生成灰度图像。,3灰度图像处理,算法说明:本例根据特定的输入输出灰度转换关系,增强了图像灰度,处理后图像的中等灰度值增大,图像变亮。 注意:本例中描述对比度改善的输入、输出灰度值对应关系的程序段为: 略。 【例7.12】改善对比度。,本章小结,本章主要讲述了C#下的图形图像基础知识,对图形的绘制,图像的处理和音频视频等多媒体的使用方法;在图片处理方面.NET提供了一个GDI+,功能十分强大,能完成对图像的全方位处理。,

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

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

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