第九讲 GDI和打印编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Bottom:矩形底部的纵座标 Top:矩形顶部的纵座标 Left:矩形坐部的横座标 Right:矩形右部的横座 Height:矩形的高度 Width:矩形的宽度 Size:矩形的尺寸 IsEmpty:矩形是否为空(高度和宽度是否都是0) X:矩形左上角的横座标Y:矩形左上角的纵座标
实例:实心画刷(SolidBrush)
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics g=e.Graphics; //定义实心填充画笔 SolidBrush myBrush=new SolidBrush(Color.Yellow); g.FillEllipse(myBrush,50,50,300,200); myBrush.Dispose(); g.Dispose(); }
处理图形包括两个步骤
创建 Graphics 对象。 使用 Graphics 对象绘制线条和形状、呈现文本 或显示与操作图像。
创建 Graphics 对象的各种方法
通过窗体或控件的 Paint 事件中 PaintEventArgs参数来获取对Graphics 对象的 引用。 调用某控件或窗体的 CreateGraphics 方法来获 取对 Graphics 对象的引用,该对象表示该控件 或窗体的绘图表面。如果想在已存在的窗体或控 件上绘图,则可使用此方法。 从继承自“图像”的任何对象创建 Graphics 对 象。此方法在您需要更改已存在的图像时十分有 用。
示例: private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics g = e.Graphics; Brush brush = new SolidBrush(Color.Blue); Pen pen = new Pen(brush,10); Font font = new Font("宋体",40); g.DrawString("GDI+图形编程 ",font,brush,20,20); g.DrawRectangle(pen,100,100,200,100); brush.Dispose(); font.Dispose(); pen.Dispose(); }
Size和SizeF结构体: 主要有width、height两个属性(用宽度 和高度的有序对表示矩形区域的大小)。 SizeF结构体代表浮点数类型。并且可以实 现Size到Point、Size到SizeF的转换。 构造函数: Size sz1 = new Size(10,10) 属性: Width: 表示宽度值 Height:表示高度值 特点:它重载了加、减、比较、赋值操作。 如:
Visual C#.NET程序设计
主讲:李 园
Email:liyuan98@126.com
涟钢电大计算机教研室
导言
在现代人机交互的程序设计中,图 形设计具有特殊重要的意义,因 次.NET提供了强大的绘图能力,但是, 无论多么强大的绘图功能,都不能代替 你的数学基础和想象力。下面我们先讨 论一些基本问题,然后结合一些实例, 探讨图形问题的一些高级技术。 GDI:Graphical Device Interface (图形设备接口)
– – – Size sz2 = sz1; Size sz3 = sz1 -sz2; Size sz4 = sz1+sz2;
Point和PointF 结构体 Point主要有x与y两个属性(表示在 二维平面中定义点的整数x和y坐标的有 序对)。并且可以对它进行“==”、 “!=”等比较操作。PointF表示在二维 平面中定义点的、浮点 x 和 y 坐标的有 序对 构造方法: Point pt = new Point(20,20); Point pt = new Point(new Size(10,10)) 特点:重载了加、减、比较、赋值操作
画刷的创建实例:
创建一个实心画刷SolidBrush画刷 如:创建一个黑色的画刷 SolidBrush drawBrush=newSolidBrush(Color.Black); 下面的示例用纯红色填充椭圆: SolidBrush mySolidBrush = new SolidBrush(Color.Red); myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40); 创建一个网格画刷HatchBrush画刷(方向,前景色,背 景色) HatchBrush myBrush=new HatchBrush(HatchStyle.Vertical,Color.Red,Color.Bla ck); 创建一个壁纸画刷TextureBrush画刷(使用指定的图象 作为画刷) Image myImg=Image.FromFile(String filename) ; TextureBrush textureBrush=new TextureBrush(myImg);
下面的示例说明如何使用 Bitmap 对象:
Bitmap myBitmap = new Bitmap(@"C:\myPic.bmp"); Graphics g = Graphics.FromImage(myBitmap);
三. 图形编程中常用的几个结构
Rectangle和RectangleF结构体 主要有左上角的x与y及width、height等四个属 性(存储矩形区域的位置和大小)。并且可以对它进 行“==”、“!=”等比较操作。而RectangleF结构体 代表浮点数类型。 主要的属性如下:
画笔属性 System.Drawing.Pen 类
Brush画刷类 作用:它主要指定填充区域的颜色和样式, Brush对象是一个抽象类。闭合的图形(例 如,矩形或椭圆)由轮廓和内部组成,轮廓 用画笔绘制,内部用画刷填充。 画刷的风格:
实心画刷(SolidBrush,用单一颜色填充) 网格画刷(HatchBrush,用交叉网格填充) 纹理(壁纸)画刷(TextureBrush) 空画刷(不填充)等。
实例:网格画刷(HatchBrush)
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics g=e.Graphics; //定义Z字形填充画笔 HatchBrush myBrush=new HatchBrush(HatchStyle.ZigZag,Color.Red,Color.B lue); g.FillEllipse(myBrush,50,50,300,200); myBrush.Dispose(); g.Dispose(); }
CreateGraphics 方法 也可以使用某控件或窗体的 CreateGraphics 方法来获取对 Graphics 对象的引用,该对象表示该控件或窗体的绘 图表面。
用 CreateGraphics 方法创建 Graphics 对象 调用要在其上呈现图形的窗体或控件的 CreateGraphics 方法。
本节难点:
本讲的主要难点是画刷Brush的应用和Regions、Paths等。
本节要点:
在图形与图像处理时注意如下几个要点。 Graphics对象 Color的构成原理
Fra Baidu bibliotek
第一节 Windows窗体GDI编程
一.图形类所在的命名空间:
各个命名空间的主要功能如下:
System.Drawing:提供了对 GDI+ 基本图 形功能的访问; System.Drawing.Drawing2D:提供高级的 二维和矢量图形功能。此命名空间包含梯度 型画刷、Matrix 类(用于定义几何变换)和 GraphicsPath 类。 System.Drawing.Imaging:提供高级 GDI+ 图像处理功能; System.Drawing.Text:提供高级 GDI+ 排 版功能,该命名空间中的类允许用户创建和 使用多种字体。
四.图形编程中常见的类
Pen 画笔类 它主要指定线宽和线的模式。Pen对象绘制具有 指定宽度和样式的直线和曲线。使用 DashStyle属 性绘制不同的虚线。由 Pen 对象绘制的直线可用 各种填充模式(包括纯色和纹理)填充。填充模式 取决于Brush画刷或用作填充对象的纹理。 创建方法: 分别可以采用Brush、Color、及Brush、width 和Color、width等参数来创建一个画笔。 Pen myPen=new Pen(Color.Black, 3); //创建一 个3个像素宽的黑色画笔 myPen.DashStyle=DashStyle.Dot; //并指定由 点构成的虚直线画笔。 画笔的作用: 通常一个图形轮廓(运用DrawXXX()方法) 是用画笔对象来实现的,
Graphics 类 它是System.Drawing命名空间内的一个 类并且为sealed类,无法继承此类。该类主 要提供将对象绘制到显示设备的方法。 Graphics 对象与特定的设备绘图环境的上 下文关联。 创建 Graphics 对象 在用 GDI 创建图形图像时,需要先创建 Graphics 对象,然后才可以使用 GDI 绘制 线条和形状、呈现文本或显示与操作图像。 Graphics 对象表示 GDI 绘图表面,是用于 创建图形图像的对象。
二.Graphics对象
它采用面向对象的封装机制,提供 将对象(图形或文本)绘制到设备(如 屏幕或打印机)的方法。它类似于 VC++6.0中的窗口上下文设备,但与它 又有差别(没有将Pen、Brush、Path、 Image、Font等对象捆绑),这些对象 是独立于Graphics对象的,它们为 Graphics类中的图形方法的参数。从 而简化了图形编程。
例如: Graphics g; g = this.CreateGraphics(); 件中的Graphics对象
//创建出控
从 Image 对象创建 也可以从由 Image 类派生的任何对象创 建图形对象。
从 Image 创建 Image 对象 调用 Graphics.FromImage 方法,提供要从其 中创建 Graphics 对象的 Image 变量的名称。
创建画刷: 如果要创建这些画刷,可以分别采 用如下的子类的实例来实现:
HatchBrush(网格) LinearGradientBrush(线性渐变,封装 双色渐变和自定义多色渐变) PathGradientBrush(它是从路径的中点 到路径的外边界边缘的平滑的彩色渐变。) SolidBrush(纯色画刷) TextureBrush(画纹画刷,使用图像来 填充)。
第五讲 C#图形程序设计基础
本节重点:
在本讲中希望您重点掌握如下知识点:Graphics对象及常用 的绘图方法,常用的参数结构体(Rectangle、Point、Size、 Point等),常见的属性类(Pen、Brush、Color、Font等), Image类和Bitmap类,Regions和Paths等。
Paint 事件处理程序中的 PaintEventArgs
在为控件编制 Paint 事件处理程序时,图形对象 作为一个 PaintEventArgs 提供。因此可以获取对 Paint 事件的 PaintEventArgs 中 Graphics 对象 的引用来实现绘图,步骤: 声明 Graphics 对象。 分配变量来引用作为 PaintEventArgs 的一部分 传递的 Graphics 对象。 插入代码来绘制窗体或控件。
实例:实心画刷(SolidBrush)
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics g=e.Graphics; //定义实心填充画笔 SolidBrush myBrush=new SolidBrush(Color.Yellow); g.FillEllipse(myBrush,50,50,300,200); myBrush.Dispose(); g.Dispose(); }
处理图形包括两个步骤
创建 Graphics 对象。 使用 Graphics 对象绘制线条和形状、呈现文本 或显示与操作图像。
创建 Graphics 对象的各种方法
通过窗体或控件的 Paint 事件中 PaintEventArgs参数来获取对Graphics 对象的 引用。 调用某控件或窗体的 CreateGraphics 方法来获 取对 Graphics 对象的引用,该对象表示该控件 或窗体的绘图表面。如果想在已存在的窗体或控 件上绘图,则可使用此方法。 从继承自“图像”的任何对象创建 Graphics 对 象。此方法在您需要更改已存在的图像时十分有 用。
示例: private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics g = e.Graphics; Brush brush = new SolidBrush(Color.Blue); Pen pen = new Pen(brush,10); Font font = new Font("宋体",40); g.DrawString("GDI+图形编程 ",font,brush,20,20); g.DrawRectangle(pen,100,100,200,100); brush.Dispose(); font.Dispose(); pen.Dispose(); }
Size和SizeF结构体: 主要有width、height两个属性(用宽度 和高度的有序对表示矩形区域的大小)。 SizeF结构体代表浮点数类型。并且可以实 现Size到Point、Size到SizeF的转换。 构造函数: Size sz1 = new Size(10,10) 属性: Width: 表示宽度值 Height:表示高度值 特点:它重载了加、减、比较、赋值操作。 如:
Visual C#.NET程序设计
主讲:李 园
Email:liyuan98@126.com
涟钢电大计算机教研室
导言
在现代人机交互的程序设计中,图 形设计具有特殊重要的意义,因 次.NET提供了强大的绘图能力,但是, 无论多么强大的绘图功能,都不能代替 你的数学基础和想象力。下面我们先讨 论一些基本问题,然后结合一些实例, 探讨图形问题的一些高级技术。 GDI:Graphical Device Interface (图形设备接口)
– – – Size sz2 = sz1; Size sz3 = sz1 -sz2; Size sz4 = sz1+sz2;
Point和PointF 结构体 Point主要有x与y两个属性(表示在 二维平面中定义点的整数x和y坐标的有 序对)。并且可以对它进行“==”、 “!=”等比较操作。PointF表示在二维 平面中定义点的、浮点 x 和 y 坐标的有 序对 构造方法: Point pt = new Point(20,20); Point pt = new Point(new Size(10,10)) 特点:重载了加、减、比较、赋值操作
画刷的创建实例:
创建一个实心画刷SolidBrush画刷 如:创建一个黑色的画刷 SolidBrush drawBrush=newSolidBrush(Color.Black); 下面的示例用纯红色填充椭圆: SolidBrush mySolidBrush = new SolidBrush(Color.Red); myGraphics.FillEllipse(mySolidBrush, 0, 0, 60, 40); 创建一个网格画刷HatchBrush画刷(方向,前景色,背 景色) HatchBrush myBrush=new HatchBrush(HatchStyle.Vertical,Color.Red,Color.Bla ck); 创建一个壁纸画刷TextureBrush画刷(使用指定的图象 作为画刷) Image myImg=Image.FromFile(String filename) ; TextureBrush textureBrush=new TextureBrush(myImg);
下面的示例说明如何使用 Bitmap 对象:
Bitmap myBitmap = new Bitmap(@"C:\myPic.bmp"); Graphics g = Graphics.FromImage(myBitmap);
三. 图形编程中常用的几个结构
Rectangle和RectangleF结构体 主要有左上角的x与y及width、height等四个属 性(存储矩形区域的位置和大小)。并且可以对它进 行“==”、“!=”等比较操作。而RectangleF结构体 代表浮点数类型。 主要的属性如下:
画笔属性 System.Drawing.Pen 类
Brush画刷类 作用:它主要指定填充区域的颜色和样式, Brush对象是一个抽象类。闭合的图形(例 如,矩形或椭圆)由轮廓和内部组成,轮廓 用画笔绘制,内部用画刷填充。 画刷的风格:
实心画刷(SolidBrush,用单一颜色填充) 网格画刷(HatchBrush,用交叉网格填充) 纹理(壁纸)画刷(TextureBrush) 空画刷(不填充)等。
实例:网格画刷(HatchBrush)
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e) { Graphics g=e.Graphics; //定义Z字形填充画笔 HatchBrush myBrush=new HatchBrush(HatchStyle.ZigZag,Color.Red,Color.B lue); g.FillEllipse(myBrush,50,50,300,200); myBrush.Dispose(); g.Dispose(); }
CreateGraphics 方法 也可以使用某控件或窗体的 CreateGraphics 方法来获取对 Graphics 对象的引用,该对象表示该控件或窗体的绘 图表面。
用 CreateGraphics 方法创建 Graphics 对象 调用要在其上呈现图形的窗体或控件的 CreateGraphics 方法。
本节难点:
本讲的主要难点是画刷Brush的应用和Regions、Paths等。
本节要点:
在图形与图像处理时注意如下几个要点。 Graphics对象 Color的构成原理
Fra Baidu bibliotek
第一节 Windows窗体GDI编程
一.图形类所在的命名空间:
各个命名空间的主要功能如下:
System.Drawing:提供了对 GDI+ 基本图 形功能的访问; System.Drawing.Drawing2D:提供高级的 二维和矢量图形功能。此命名空间包含梯度 型画刷、Matrix 类(用于定义几何变换)和 GraphicsPath 类。 System.Drawing.Imaging:提供高级 GDI+ 图像处理功能; System.Drawing.Text:提供高级 GDI+ 排 版功能,该命名空间中的类允许用户创建和 使用多种字体。
四.图形编程中常见的类
Pen 画笔类 它主要指定线宽和线的模式。Pen对象绘制具有 指定宽度和样式的直线和曲线。使用 DashStyle属 性绘制不同的虚线。由 Pen 对象绘制的直线可用 各种填充模式(包括纯色和纹理)填充。填充模式 取决于Brush画刷或用作填充对象的纹理。 创建方法: 分别可以采用Brush、Color、及Brush、width 和Color、width等参数来创建一个画笔。 Pen myPen=new Pen(Color.Black, 3); //创建一 个3个像素宽的黑色画笔 myPen.DashStyle=DashStyle.Dot; //并指定由 点构成的虚直线画笔。 画笔的作用: 通常一个图形轮廓(运用DrawXXX()方法) 是用画笔对象来实现的,
Graphics 类 它是System.Drawing命名空间内的一个 类并且为sealed类,无法继承此类。该类主 要提供将对象绘制到显示设备的方法。 Graphics 对象与特定的设备绘图环境的上 下文关联。 创建 Graphics 对象 在用 GDI 创建图形图像时,需要先创建 Graphics 对象,然后才可以使用 GDI 绘制 线条和形状、呈现文本或显示与操作图像。 Graphics 对象表示 GDI 绘图表面,是用于 创建图形图像的对象。
二.Graphics对象
它采用面向对象的封装机制,提供 将对象(图形或文本)绘制到设备(如 屏幕或打印机)的方法。它类似于 VC++6.0中的窗口上下文设备,但与它 又有差别(没有将Pen、Brush、Path、 Image、Font等对象捆绑),这些对象 是独立于Graphics对象的,它们为 Graphics类中的图形方法的参数。从 而简化了图形编程。
例如: Graphics g; g = this.CreateGraphics(); 件中的Graphics对象
//创建出控
从 Image 对象创建 也可以从由 Image 类派生的任何对象创 建图形对象。
从 Image 创建 Image 对象 调用 Graphics.FromImage 方法,提供要从其 中创建 Graphics 对象的 Image 变量的名称。
创建画刷: 如果要创建这些画刷,可以分别采 用如下的子类的实例来实现:
HatchBrush(网格) LinearGradientBrush(线性渐变,封装 双色渐变和自定义多色渐变) PathGradientBrush(它是从路径的中点 到路径的外边界边缘的平滑的彩色渐变。) SolidBrush(纯色画刷) TextureBrush(画纹画刷,使用图像来 填充)。
第五讲 C#图形程序设计基础
本节重点:
在本讲中希望您重点掌握如下知识点:Graphics对象及常用 的绘图方法,常用的参数结构体(Rectangle、Point、Size、 Point等),常见的属性类(Pen、Brush、Color、Font等), Image类和Bitmap类,Regions和Paths等。
Paint 事件处理程序中的 PaintEventArgs
在为控件编制 Paint 事件处理程序时,图形对象 作为一个 PaintEventArgs 提供。因此可以获取对 Paint 事件的 PaintEventArgs 中 Graphics 对象 的引用来实现绘图,步骤: 声明 Graphics 对象。 分配变量来引用作为 PaintEventArgs 的一部分 传递的 Graphics 对象。 插入代码来绘制窗体或控件。