图形图像编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
【例】绘制矩形 。
10.2.4 绘制多边形
多边形分为空心多边形和填充多边形。 (1)绘制空心多边形 Public Sub DrawPolygon(ByVal pen As Pen, ByVal point As Point()) (2)绘制填充多边形 Public Sub FillPolygon(ByVal brush As Brush, ByVal point As Point()) 其中Point数组是由一组Point结构对象定义的多边形。Pen对象指出画线 的画笔。注意填充多边形需用画刷而不是画笔。 【例10.2】设计一个窗体,说明多边形方法的使用。
在屏幕上进行绘制的操作称为“绘画”。窗体和控件都有一个 Paint事件。 每当需要重新绘制窗体和控件(例如,首次显示窗体或窗体由另 一个窗口覆盖)时就会发生该事件。用户所编写的用于显示图形的 任何代码通常都包含在Paint事件处理程序中。
10.2 绘制基本图形
• 10.2.1 创建画笔
• 10.2.2 绘制直线
10.3 创建画刷填充图形
(3)LinearGradientBrush画刷 使用两种颜色渐变混合的进行绘制。
Public Sub New( ByVal point1 As Point, ByVal point2 As Point,ByVal color1 As Color,ByVal color2 As Color )
GDI+的中介作用
10.1.2 Graphics类
要进行图形处理,必须首先创建Graphics对象,然后才能 利用它进行各种画图操作。创建Graphics对象的形式有: (1)在窗体或控件的Paint事件中直接引用Graphics对象 GDI+的中介作用 (2)从当前窗体或控件获取对Graphics对象的引用 (3)从继承自图像的任何对象创建Graphics对象。
10.2.3 绘制矩形
使用DrawRectangle()方法可以绘制矩形,常用形式有: [格式1]: • Overloads Public Sub DrawRectangle( ByVal pen As Pen, ByVal rect As Rectangle) 其中rect表示要绘制的矩形的Rectangle结构。 [格式2]: • Overloads Public Sub DrawRectangle( ByVal pen As Pen, ByVal x As Single, ByVal y As Single,ByVal width As Single, ByVal height As Single ) 其中x, y为矩形左上角坐标值。参数width是要绘制矩形的宽度,参数 height是要绘制矩形的高度。
(1)创建某一颜色的Pen对象: Public Sub New( ByVal color As Color ) (2)创建某一刷子样式的Pen对象: Public Sub New( ByVal brush As Brush ) (3)创建某—刷子样式并具有相应宽度的Pen对象: Public Sub New( ByVal brush As Brush, ByVal width As Single ) (4)创建某一颜色和相应宽度的Pen对象: Public Sub New( ByVal color As Color, ByVal width As Single) 【例10.1】画笔的用法演示示例。
图10-9 线性渐变填充
10.3 创建画刷填充图形
(4)TextureBrush画刷 使用纹理(如图像)进行绘制。TextureBrush类允许使用一幅图像作为 填充的样式。
图10-10 图像作为填充的样式
10.4 图像处理
• 10.4.1 显示图像 • 10.4.2 图像的平移、旋转和缩放
• 10.4.3 彩色图像变换灰度图像
(3)调用 Graphics 对象的 DrawImage 方法显示图像。
【例10.4】将文件对话框选中的图像文件原样显示和缩小显示。
10.4.1 显示图像
【例10.4】将文件对话框选中的图像文件原样显示和缩小显示。
10.4.2 图像的平移、旋转和缩放
Graphics类提供了三种对图像进行几何变换的方法,它们是 TranslateTransform()方法、RotateTransform()方法和ScaleTransform() 方法,分别用于图形图像的平移、旋转和缩放。 【例10.5】三种变换方法示例。
10.3 创建画刷填充图形
• 画刷是可与Graphics对象一起使用来创建实心形状和呈现 文本的对象。可以用画刷填充各种图形形状,如矩形、 椭圆、扇形、多边形和封闭路径等。 • 画刷(Brush)类是一个抽象类,本身不能实例化。一般 使用它的派生类。主要有以下几种不同类型的画刷Brush 派生类:
10.2.6 绘制椭圆和弧线
椭圆是一种特殊的封闭曲线,Graphics类专门提供了绘制椭圆的两种方法: DrawEllipse()方法和FillEllipse()方法。常用形式有: [格式1]: Public Sub DrawEllipse( ByVal pen As Pen, ByVal rect As Rectangle ) 其中rect为Rectangle结构,用于确定椭圆的边界。 [格式2]: Public Sub DrawEllipse( ByVal pen As Pen, ByVal x As Integer, ByVal y As Integer, ByVal width As Integer, ByVal height As Integer) 其中x, y为椭圆左上角的坐标,width定义椭圆的边框的宽度,height定义椭圆 的边框的高度。 [格式3]: Public Sub FillEllipse( ByVal brush As Brush, ByVal rect As Rectangle ) 填充椭圆的内部区域。其中rect为Rectangle结构,用于确定椭圆的边界。 【例10.3】绘制椭圆和弧线 。
10.1.3 坐标
坐标系以像素为单位,像素指的是屏幕上的亮点。每个 像素都有一个坐标与之对应,左上角的坐标为(0,0) ,水平向右为正,垂直向下为正。一般情况下以(x,y )代表屏幕上某个像素的坐标点,其中水平以X坐标值表 示,垂直以Y坐标值表示。
该点的坐标 (x, y)是(4, 3)
10.1.4 Paint事件
10.4.1 显示图像
可以使用 GDI+ 显示以文件形式存在的图像文件。图像文件可以是BMP 、JPEG、GIF、TIFF、PNG等。实现步骤为: (1)创建一个Bitmap对象,指明要显示的图像文件; 创建Bitmap对象,Bitmap类有很多重载的构造函数,其中之一是: Public Sub New( ByVal filename As String ) filename 是位图文件的名称。可以利用该构造函数创建Bitmap对象, 例如:Dim bitmap As New Bitmap ("tu1.jpg"); (2)创建一个Graphics对象,表示要使用的绘图平面; Dim g As Graphics = 窗体或图片框控件.CreateGraphics()
10.3 创建画刷填充图形
(1)SolidBrush画刷 SolidBrush类用来定义单一颜色的Brush,用纯色进行绘制。 其构造函数如下: Public Sub New( ByVal color As Color ) (2)HatchBrush画刷 类似于 SolidBrush,但是可以利用该类从大量预设的图案中选择绘制 时要使用的图案,而不是纯色。HatchBrush画刷具有三个属性,分 别如下: • HatchStyle属性:获取此 HatchBrush 对象的阴影样式。 • BackgroundColor属性:获取此 HatchBrush 对象的背景色。 • ForegroundColor属性:获取此 HatchBrush 对象的前景色
• 实验十 图形图像的绘制
10.1 图形图像绘制基础知识
• 10.1.1 GDI+概述 • 10.1.2 Graphics类 • 10.1.3 坐标 • 10.1.4 Paint事件
10.1.1 GDI+概述
• GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的 主要任务是负责系统与绘图程序之间的信息交换,处理所有 Windows程序的图形输出。 • GDI+技术是由GDI技术“进化”而来,出于兼容性考虑,Windows XP仍然支持以前版本的GDI,但是在开发新应用程序的时候,开发 人员为了满足图形输出需要应该使用GDI+,因为GDI+对以前的 Windows版本中GDI进行了优化,并添加了许多新的功能。
10.2.5 绘制曲线
曲线有空心曲线和填充曲线之分。Graphics.DrawClosedCurve可以 画出一个平滑封闭的曲线。Graphics.FillClosedCurve可以画出一个 填充闭合曲线。 (1)绘制空心闭合曲线 Public Sub DrawClosedCurve(ByVal pen As Pen, ByVal points As Point()) (2)绘制填充闭合曲线 Public Sub FillClosedCurve(ByVal pen As Pen, ByVal points As Point()) points表示曲线经过点的数组,其中必须包含至少4个点。 【例10.3】绘制闭合曲线 。
• 10.2.3 绘制矩形
• 10.2.4 绘制多边形
• 10.2.5 绘制曲线 • 10.2.6 绘制椭圆和弧线
10.2.1 创建画笔
在GDI+中,可使用画笔(Pen)对象于绘制具有指定宽度和样式 的线条、曲线以及勾勒形状轮廓。 画笔可用于绘制具有指定宽度和样式的直线、曲线或轮廓形状。 画笔(Pen)类的构造函数有来自百度文库种,使用方法如下。
10.2.2 绘制直线
• [格式3]: • Overloads Public Sub DrawLines( ByVal pen As Pen, ByVal points() As Point)
• 这种方法用于绘制连接一组终结点的线条。数组中的前 两个点指定第一条线。每个附加点指定一个线段的终结 点,该线段的起始点是前一条线段的结束点。。 【例】连接一组终结点的线条。
10.2.2 绘制直线
有两种绘制直线的方法:DrawLine()方法和DrawLines()方法。 DrawLine()用于绘制一条直线,DrawLines()用于绘制多条直线。 常用形式有:
[格式1]: Overloads Public Sub DrawLine( ByVal pen As Pen, ByVal x1 As Integer, ByVal y1 As Integer, ByVal x2 As Integer, ByVal y2 As Integer) 其中x1,y1为起点坐标,x2,y2为终点坐标。例如: e.Graphics.DrawLine(blackPen, 100,100,200,100) [格式2]: Overloads Public Sub DrawLine( ByVal pen As Pen, ByVal pt1 As Point, ByVal pt2 As Point ) 其中Pen对象确定线条的颜色、宽度和样式。Point结构确定起点和终点。 【例10.1】画笔的用法演示示例。
第10章 图形图像编程
教学目标
• 了解.Net框架提供的的图形类库,掌握基本图形绘制方法
,初步了解Visual Basic.NET语言处理位图图像和保存图
像功能。
目录
• 10.1 图形图像绘制基础知识
• 10.2 绘制基本图形
• 10.3 创建画刷填充图形 • 10.4 图像处理 • 10.5 文字处理 • 10.6 综合应用
图10-12 三种变 换方法