Vindows程序设计 第12章GDI+图形图像 程序设计
Windows 程序设计 第12章 GDI+图形图像 程序设计
学习要点 ■1.掌握C#的GD+常用绘图功能的实现方法 ■2.掌握C#的GD+文本的字体设置及其呈现的实现 方法 ■3.掌握C#的GD+图像处理的基础知识及动画设计 方法 ■4.了解C#的GD+图像的变形功能的实现方法 2
2 学习要点 ▪ 1.掌握C#的GDI+常用绘图功能的实现方法 ▪ 2.掌握C#的GDI+文本的字体设置及其呈现的实现 方法 ▪ 3.掌握C#的GDI+图像处理的基础知识及动画设计 方法 ▪ 4.了解C#的GDI+图像的变形功能的实现方法
基本内容 Graphics:类 绘图步骤 点 直线 矩形 椭圆
3 基本内容 Graphics类 直线 矩形 绘图步骤 点 椭圆
GDI+概述 ■ GDl+(Graphics Device Interface Plus,即图形设备接 ▣)是Windows API(Application Programming Interface)的一个重要组成部分。 GD+的体系结构如下图所示。 Microsoft.NET框架 Win32(C++) GDL+引擎 维矢量图形 图像 文本 GDI+ GDL DirectX 系统底层驱动程序 GDI+的体系结构 4
4 GDI+概述 ▪ GDI+(Graphics Device Interface Plus,即图形设备接 口)是Windows API(Application Programming Interface)的一个重要组成部分。 ▪ GDI+的体系结构如下图所示。 Microsoft.NET框架 Win32(C++) 二维矢量图形 图像 文本 GDI+ GDL DirectX 系统底层驱动程序 GDL+引擎 GDI+的体系结构
GD+绘图的基本步骤 GDI+类及结构 形象化类比 Graphics Color,Font Point,Size,Rectangle Pen,Brush DrawX(X包括:Line,Polygon等); FillY(Y包括:Line,Polygon等) 图形、文本
5 GDI+绘图的基本步骤 GDI+类及结构 形象化类比 Graphics Color,Font Point,Size,Rectangle Pen,Brush DrawX(X包括:Line,Polygon等); FillY(Y包括:Line,Polygon等) 图形、文本
基本概念 ■什么是图形坐标系统? ■绘图对象的左上角为坐标系统的原点(0,0) ■水平方向x轴,垂直方向y轴 ■什么是像素? ■图像元素, ■指基本原色素及其灰度的基本编码。 ■直线和位图? 6
6 基本概念 ▪ 什么是图形坐标系统? ◼ 绘图对象的左上角为坐标系统的原点(0,0) ◼ 水平方向x轴,垂直方向y轴 ▪ 什么是像素? ◼ 图像元素 , ◼ 指基本原色素及其灰度的基本编码 。 ▪ 直线和位图?
Graphics类 1.在窗体或控件的Paint:事件中直接引用Graphics对象 private void Form1_Paint(object sender, PaintEventArgs e){ Graphics g =e.Graphics; /其他图形图像处理代码 2.调用当前窗体或控件的CreateGraphics方法 Graphics g this.CreateGraphics(); 其他图形图像处理代码
7 Graphics类 ▪ 1.在窗体或控件的Paint事件中直接引用Graphics对象 private void Form1_Paint(object sender, PaintEventArgs e){ Graphics g = e.Graphics; //其他图形图像处理代码 . } ▪ 2.调用当前窗体或控件的CreateGraphics方法 Graphics g = this.CreateGraphics(); //其他图形图像处理代码
Graphics类 3.调用Graphicsa类的Fromlmage静态方法 需要更改已存在的 图像时,通常会使 Bitmap bitmap new Bitmap("1.jpg"); 用此方法 Graphics g Graphics.FromImage(bitmap) 或者: Image img Image.FromFile(1.jpg); Graphics g Graphics.Fromlmage(img); 提示: 由于图像对象非常占用系统资源,所以当不再使用这 些对象时,应该使用Dispose方法及时将其占用的资源 释放掉,以免影响系统的性能。 8
8 Graphics类 ▪ 3.调用Graphics类的FromImage静态方法 Bitmap bitmap = new Bitmap("1.jpg"); Graphics g = Graphics.FromImage(bitmap); ▪ 或者: Image img = Image.FromFile(1.jpg); Graphics g = Graphics.FromImage(img); 提示: 由于图像对象非常占用系统资源,所以当不再使用这 些对象时,应该使用Dispose方法及时将其占用的资源 释放掉,以免影响系统的性能。 需要更改已存在的 图像时,通常会使 用此方法
颜色 颜色是进行图形操作的基本要素。任何一种颜色的表现效 果都可以由3个色彩分量和1个透明度参数来确定,每个分 量占1B,即: ■R:红,取值范围为0~255,255为饱和红色 ■G:绿,取值范围为0-~255,255为饱和绿色 ■B:蓝,取值范围为0~255,255为饱和蓝色 ■A:即Alpha值,表示一种颜色的透明度,取值范围为0-~255,0 为完全透明,255为完全不透明。 ■ 创建颜色对象的方法: ■利用FromArgb指定任意颜色 Color.FromArgb(red,green,blue) Color.FromArgb(alpha,red,green,blue) ■直接利用系统预定义的颜色 Color.Red
9 颜色 ▪ 颜色是进行图形操作的基本要素。任何一种颜色的表现效 果都可以由3个色彩分量和1个透明度参数来确定,每个分 量占1B,即: ◼ R:红,取值范围为0~255,255为饱和红色 ◼ G:绿,取值范围为0~255,255为饱和绿色 ◼ B:蓝,取值范围为0~255,255为饱和蓝色 ◼ A:即Alpha值,表示一种颜色的透明度,取值范围为0~255,0 为完全透明,255为完全不透明。 ▪ 创建颜色对象的方法: ◼ 利用FromArgb指定任意颜色: ◼ 直接利用系统预定义的颜色 Color.FromArgb( red, green, blue) Color.FromArgb( alpha,red, green, blue) Color.Red
坐标系统 GDl+使用Point、Size和Rectangle:结构来进行绘图时的 坐标定位和尺寸确定。 Point结构 GDl+的Point表示一个二维平面上的点,声明和构造 D~in4的三ml尘缸hm下 GDI+使用Size表示一个尺寸(单位:像素),Size结构包 Size结构 含宽度和高度两个量。声明和构造$iz的示例代码如下 Size s=new Size(50,80); Rectangle结构 Rectangle可以采用两种构造函数,一种是指定矩形左上角的X和Y坐 标以及矩形的宽和高,示例代码如下: Rectangle rct=new Rectangle(10,20,150,300); Rectangle rct=new Rectangle(p,s) 10
10 坐标系统 ▪ GDI+使用Point、Size和Rectangle结构来进行绘图时的 坐标定位和尺寸确定。 ▪ Point结构 ▪ Size结构 ▪ Rectangle结构 GDI+的Point表示一个二维平面上的点,声明和构造 Point的示例代码如下: Point p = new Point(85,100); GDI+使用Size表示一个尺寸(单位:像素),Size结构包 含宽度和高度两个量。声明和构造Size的示例代码如下 Size s = new Size(50,80); Rectangle可以采用两种构造函数,一种是指定矩形左上角的X和Y坐 标以及矩形的宽和高,示例代码如下: Rectangle rct = new Rectangle(10,20,150,300); Rectangle rct=new Rectangle(p,s)