好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Delphi 程序设计 教学课件 ppt 作者 冯博琴主编 席一凡 聂 第十章 图形图像程序设计.ppt

20页
  • 卖家[上传人]:E****
  • 文档编号:89386420
  • 上传时间:2019-05-24
  • 文档格式:PPT
  • 文档大小:489.50KB
  • / 20 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第10章 图形图像程序设计,教学目的  了解Delphi中图形图像处理控件及其在应用程序中的作用  掌握图形图像处理控件的使用方法  掌握绘制图形图像的对象和方法  掌握利用Delphi 7实现图形绘制,图像处理的程序设计方法与技巧 Delphi 7 在图形图像制作和处理方面有着强大的支持功能,它提供了很多绘制图形图像的对象和方法本章主要介绍Delphi中图形图像处理控件的使用,讲述Delphi 7中绘制和处理图形图像所需的基本对象和基本方法,以及这些对象和方法的使用技巧,并将通过实例来进一步应用这些对象的属性和方法Delphi 7 为用户提供了丰富的图形图像处理功能,本节主要介绍Image 控件、Shape控件和PaintBox 控件的使用方法 10.1.1 Image 控件 Image 控件也称为图像控件,功能是用来显示图形文件,同时Image 控件也是一个容器控件该控件在【Additional】选项卡上,类名为Timage Image 控件的常用属性如表10.1所列 表10.1 Image 控件的常用属性,10.1 图形图像基本控件,对于Image 控件Picture 属性,可以通过属性窗口设置,也可以在代码中设置,如: image1.Picture.loadfromfile('f:\pic\abc.bmp');,10.1.2 Shape 控件 Shape 控件可以用来绘制矩形、正方形、椭圆、圆、圆角矩形及圆角正方形。

      Shape控件在【Additional】选项卡中,类名为TShape Shape 控件的常用属性如表10.2所列 表10.2 Shape 控件的常用属性 10.1.3 PaintBox 控件 PaintBox 控件又称为绘图板控件,在应用程序中可以使用该控件来绘制图形该控件在【System】选项卡中,类名为TpaintBox 使用PaintBox控件绘制图形时,首先把控件添加到窗体上,然后利用属性对象Canvas的属性与方法在绘图板上绘制图形或载入图像文件如果要重画图形,可使用它的Repaint方法清除已绘制的图形 提示:PaintBox 控件上的图形都是以控件的左上角为原点坐标例10.1】 编写程序,实现3幅图片轮换显示 操作步骤如下: (1)新建工程,并完成窗体设计:在窗体上添加PaintBox 控件(PaintBox1)和Timer 控件(Timer1),如图10.1所示在‘f:\pic\’路径下保存图像文件bb1.bmp、bb2.bmp、bb3.bmp (2)添加过程并设置变量: procedure FormActivate(Sender: TObject); procedure Timer1Timer(Sender: TObject); var Form1: TForm1; bmp1,bmp2,bmp3:tbitmap; i:integer; (3)为窗体Form1编写Activate事件的代码: procedure TForm1.FormActivate(Sender: TObject); begin i:=0; bmp1:=tbitmap.Create; bmp1.LoadFromFile('f:\pic\bb1.bmp'); bmp2:=tbitmap.Create; bmp2.LoadFromFile('f:\pic\bb2.bmp'); bmp3:=tbitmap.Create; bmp3.LoadFromFile('f:\pic\snap.bmp'); end;,(4)为计时器Timer1编写Timer事件的代码: procedure TForm1.Timer1Timer(Sender: TObject); begin i:=i+1; case i mod 3 of 0: begin paintbox1.repaint; paintbox1.canvas.draw(0,0,bmp1); end; 1: begin paintbox1.repaint; paintbox1.canvas.draw(0,0,bmp2); end; 图10.2 例10.1程序执行结果 begin paintbox1.repaint; paintbox1.canvas.draw(0,0,bmp3); end; end; end; (5)保存并运行程序,可以看到3幅图片轮换播放显示。

      如图10.2所示10.2 图形图像对象 在Delphi 7中用户可以使用多种控件绘制图形、图像绘制图形操作通常在对象的画布(即Canvas)上进行,而不是直接绘制在对象上Canvas 是Delphi 7中几乎所有图形控件都具有的一个属性,其优点是能有效地管理资源和设备快捷菜单,不管是向屏幕、打印机输出图像还是绘制图形,在程序中都可以使用相同的方法 10.2.1 TCanvas对象 TCanvas(画布)对象是一个用于绘图的区域,在这个区域上,程序可实现各种绘图功能很多控件(如TIMage、Tmemo)的Canvas 属性就是TCanvas 对象,在控件上绘制图形就是在控件的画布上绘制TCanvas 的Brush、Pen 和Font 属性分别是Tbrush、Tpen 和TFont对象,它们用于定义绘制图形的风格在Delphi.Canvas 的帮助下,用户可以画出任意图形并涂色Canvas 尽管功能强大,但它并不能单独画出图形,它必须依赖于一个具体的对象实体才有意义而拥有了Canvas 属性的对象也就通过Canvas 拥有了绘制图形的能力比如,Canvas 可以依赖TForm对象,使TForm具有绘图能力,然后就可以通过Canvas 的方法实现画图的功能。

      TCanvas 的常用属性主如表10.3所列 表10.3 TCanvas 的常用属性,TCanvas 的CopyMode属性非常有用,它的改变可以实现一些特殊的功能,CopyMode属性的具体设置值见表10.4 表10.4 TCanvas的CopyMode 属性值,TCanvas对象有很多方法,可完成常用的绘图功能10.2.2 TPen对象 使用Delphi 设计应用程序时,经常需要绘制各种线段Delphi 的Tpen (画笔对象)可以用来在画布上绘制各种线段,而笔的颜色是在Color属性中定义的,线段的宽度通过其Width属性来定义Style 属性定义了线段的各种类型,见表10.6 表10.6 Style 的取值及含义,Mode 属性定义了线段的颜色,可结合当前的颜色、屏幕颜色或它们的反转值,对线段的颜色重新定义,但不改变Color 属性表10.7 定义了Mode 的取值及含义 表10.7 Mode的取值及含义,10.2.3 TBrush对象 在使用Delphi 编制应用程序时,经常需要使用颜色或者现有的图案对绘制的图形进行填充,比如可以用颜色或者图案对在画布中已经绘制了的矩形或者椭圆进行填充。

      而TBrush (画刷对象)就可以满足我们的需求TBrush 拥有一个画刷句柄(HBrush),画刷的颜色定义在Color 属性中,画刷还有一个Bitmap(位图)属性,该属性只能在运行时得到画刷可使用位图填充画布中绘制好的图形以产生特殊效果,位图大小为8 个像素高、8 个像素宽,Style 属性定义了画刷填充图形的风格 10.2.4 TColor类型 TColor 类型用于定义一个对象的颜色很多控件的颜色属性就是TColor 类型,在Graphics 单元中TColor 定义如下: TColor = -(COLOR_ENDCOLORS + 1)$02FFFFF; 这是一个32 位二进制数据Graphic 单元中还定义了一些常用的颜色常量,这些常量或直接映射成系统调色板中最相近的颜色,或映射成Windows 控制面板中颜色部分的系统视频颜色 直接映射成系统调色板中的颜色有ClAqua、CLBlack、ClBlue、ClbkGray、 ClFuchsoa、.、ClYellow 映射程序用4 字节的二进制码来定义颜色,低3 位字节代表RGB 相应的颜色,如$0000FF00表示纯绿,$000000FF 表示纯红,$00FF0000 表示纯蓝, $00000000 表示黑色,$00FFFFFF 表示白色。

      如果最高位字节是$00,则表示系统调色板中最相近的颜色;最高位字节是$01,则表示用当前调色板中最相近的颜色匹配;最高位字节是$02,则用当前设备描述表中逻辑调色板的次相近颜色匹配 用Windows API 的SelectPalette 函数可创建逻辑调色板,要实现逻辑调色板到硬件调色板的映射,需要用函数RealizePalett表7.4 Label 控件的特有属性,10.2.5 TGraphic对象 1.TGraphic 的属性 TGraphic 对象是Tbitmap、TIcon、Tmetafile 对象的基类,其常用属性如表10.8所示 表10.8 TGraphic 对象的常用属性,2.TGraphic 的常用方法 TGraphic 对象的常用方法有表10.9所示 表10.9 TGraphic 对象的常用方法,10.2.6 TPicture对象 TPicture对象可以保存位图、图标或位元文件及其他不确定类型的图片Graphic 属性中包括图像的类型,图像的高度和宽度分别定义在Height、Width属性中,调用LoadFromFile方法,可以从文件中装载一幅图像,代码如下 procedure TForm1.FormCreate(Sender: TObject); begin BitBtn1.Glyph.LoadFromFile('TARTAN.BMP'); end; 要保存一个位图,则要用SaveToFile方法;要把图像复制到剪贴板,可以调用TClipboard对象的Assign 方法。

      其主要属性表10.10所示 表10.10 Assign 方法的主要属性,10.2.7 TImage对象 图像控件TImage在Additional 选项卡上,用来在窗体中显示一幅图片,它的Picture 属性是TPicture的一个对象,在Picture 属性中可调入图像文件Delphi 支持位图(.bmp)、图标(.ico)、图元(.wfm)3 种文件格式其常用属性如表10.11所示 表10.11 TImage的常用属性,10.2.8 TBitmap对象 位图对象TBitmap是一个强大的图像对象,用来创建图像或者执行图像的大小、卷轴、旋转、绘画等操作,它将文件存储在内存中,便于调用包含一个位图图像,有HBITMAP、HPALETE句柄,可自动管理调色板其主要属性如表10.12所示 表10.12 TBitmap 对象的主要属性,10.3 图形图像编程 10.3.1 图形绘制与处理应用实例 前面两节介绍了部分图形图像对象及其属性,下面重点介绍一个实例,在例子中将对上述概念中提到的许多属性和方法加以运用 【例10.2】图形绘制与处理应用实例 在当前窗体中绘制线段、矩形、椭圆、多边形,并对多边形的边数和各个图形的颜色给予控制。

      其中绘制的图形用命令按钮TButton 控制,颜色用TComboBox 控件控制,多边形的边数通过在Edit 控件框中输入的数值加以控制 操作步骤如下: (1) 创建工程并进行窗体设计 如图10.3 所示,在主窗体中加入1 个ComboBox 控件、1 个Lable 控件、1 个Edit 控件、5 个Button 控件 (2) 为各控件添加响应事件 首先在代码编辑器中添加几个全局变量x1、y1、 start、start1、start2其中x1、y1 是整型变量, 是绘制椭圆和矩形时的起始点坐标当绘制椭 圆和矩形时窗体的OnMouseDown事件每次被触 发,鼠标。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.