图形与图像编程基础培训讲座(ppt 18页).ppt_第1页
图形与图像编程基础培训讲座(ppt 18页).ppt_第2页
图形与图像编程基础培训讲座(ppt 18页).ppt_第3页
图形与图像编程基础培训讲座(ppt 18页).ppt_第4页
图形与图像编程基础培训讲座(ppt 18页).ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章图形与图像编程基础 主讲 马川 本章主要学习内容 图形处理的基本原理 图形设备接口设备环境GDI坐标系映射模式使用画笔和画刷绘制图形文本与字体位图 图标和光标 Windows图形设备接口 GDI 是为与设备无关的图形设计的 所谓设备的无关性 就是操作系统屏蔽了硬件设备的差异 因而设备无关性能使用户编程时无需考虑特殊的硬件设置 6 1图形设备接口 Windows提供了一个称为图形设备接口GDI GraphicsDeviceInterface 的抽象接口 GDI作为Windows的重要组成部分 它负责管理用户绘图操作时功能的转换 用户通过调用GDI函数与设备打交道 GDI通过不同设备提供的驱动程序将绘图语句转换为对应的绘图指令 避免了直接对硬件进行操作 从而实现所谓的设备无关性 编程时采用MFC方法绘制图形也很方便 MFC对GDI函数和绘图对象进行了封装 图形设备接口GDI管理Windows应用程序图形的绘制 在应用程序中 通过调用GDI函数绘制不同尺寸 颜色 风格的几何图形 文本和位图 这些图形处理函数组成了图形设备接口GDI GDI是形成Windows核心的三种动态链接库之一 MFC将GDI函数封装在一个名为CDC的设备环境类中 因此我们可以通过调用CDC类的成员函数来完成绘图操作 所谓设备无关性 是指操作系统屏蔽了硬件设备的差异 使用户编程时一般无需考虑设备的类型 如不同种类的显示器或打印机 6 1 1概述 一 图形设备接口 GDI GDI负责系统与用户或绘图程序之间的信息交换 并控制在输出设备上显示图形或文字 是Windows系统的重要组成部分 设备描述表即为设备环境的属性的集合 应用程序与输出设备之间的桥梁 Win系统 外设 直接访问 统一的设备环境 DC 使应用程序与设备相连 1 GDI的一些基本概念 Windows绘图过程和设备无关性的实现 GDI处于设备驱动程序的上一层 当程序调用绘图函数时 GDI将绘图命令传送给当前设备的驱动程序 以调用驱动程序提供的接口函数 驱动程序的接口函数将Windows绘图命令转化为设备能够执行的输出命令 实现图形的绘制 不同设备具有不同的驱动程序 设备驱动程序是设备相关的 应用程序 设备描述表及其属性 通过设备描述表的句柄来间接地存取 应用程序每一次图形操作均参照设备描述表中的属性执行 6 1 2设备环境 为了实现设备无关性 应用程序的输出不直接面向显示器等物理设备 而是面向一个称之为设备环境DC DeviceContext 的虚拟逻辑设备 设备环境也称设备描述表或设备上下文 它是由Windows管理的一个数据结构 它保存了绘图操作中一些共同需要设置的信息 如当前的画笔 画刷 字体和位图等图形对象及其属性 以及颜色和背景等影响图形输出的绘图模式 形象地说 一个设备环境提供了一张画布和一些绘画的工具 我们可以使用不同颜色的工具在上面绘制点 线 圆和文本 设备环境中的 设备 是指任何类型的显示器或打印机等输出设备 绘图时用户不用关心所使用设备的编程原理和方法 所有的绘制操作必须通过设备环境进行间接的处理 Windows自动将设备环境所描述的结构映射到相应的物理设备上 从根本上来说 设备环境DC是一个Windows数据结构 该结构存储着程序向设备输出时所需要的信息 应用程序利用它定义图形对象及其属性 并实现应用程序 设备驱动程序和输出设备之间绘图命令的转换 在Windows中不使用DC无法进行输出 在使用任何GDI绘图函数之前 必须建立一个设备环境 获取设备环境DC的方法 在程序中不能直接存取DC数据结构 只能通过系统提供的一系列函数或使用设备环境的句柄HDC来间接地获取或设置设备环境结构中的各项属性 如显示器高度和宽度 支持的颜色数及分辨率等 如果采用SDK方法编程 获取DC的方法有两种 在WM PAINT消息处理函数中通过调用API函数BeginPaint 获取设备环境 在消息处理函数返回前调用API函数EndPaint 释放设备环境 在其他函数中通过调用API函数GetDC 获取设备环境 调用API函数ReleaseDC 释放设备环境 如果采用MFC方法编程 MFC提供了不同类型的DC类 每一个类都封装了DC句柄 并且它们的构造函数自动调用获取DC的API函数 析构函数自动调用释放DC的API函数 因此 在程序中通过声明一个MFC设备环境类的对象就自动获取了一个DC 而当该对象被销毁时就自动释放了获取的DC MFCAppWizard应用程序向导创建的OnDraw 函数自动支持所获取的DC MFC的DC类包括CDC CPaintDC CClientDC CWindowDC和CMetaFileDC等 其中CDC类是MFC设备环境类的基类 其它的MFC设备环境类都是CDC的派生类 CDC类既作为其它MFC设备环境类的基类 又可以作为一个一般的设备环境类使用 利用它可以访问设备属性和设置绘图属性 CDC类对GDI的所有绘图函数进行了封装 CPaintDC类是OnPaint 函数使用的设备环境类 它代表一个窗口的绘图画面 如果添加WM PAINT消息处理函数OnPaint 就需要使用CPaintDC类来定义一个设备环境对象 CClientDC类代表了客户区设备环境 当在客户区实时绘图时 需要利用CClientDC类定义一个客户区设备环境 CWindowDC类代表了整个程序窗口设备环境 可以在整个窗口区域绘图 MFC设备环境类 6 1 3GDI坐标系和映射模式 Windows坐标系分为逻辑坐标系和设备坐标系两种 GDI支持这两种坐标系 一般而言 GDI的文本和图形输出函数使用逻辑坐标 而在客户区移动或按下鼠标的鼠标位置是采用设备坐标 逻辑坐标系是面向DC的坐标系 这种坐标不考虑具体的设备类型 在绘图时 Windows会根据当前设置的映射模式将逻辑坐标转换为设备坐标 设备坐标系是面向物理设备的坐标系 这种坐标以像素或设备所能表示的最小长度单位为单位 X轴方向向右 Y轴方向向下 设备坐标系的原点位置 0 0 不限定在设备显示区域的左上角 设备坐标系分为屏幕坐标系 窗口坐标系和客户区坐标系三种相互独立的坐标系 屏幕坐标系以屏幕左上角为原点 一些与整个屏幕有关的函数均采用屏幕坐标 如GetCursorPos SetCursorPos CreateWindow MoveWindow 弹出式菜单使用的也是屏幕坐标 窗口坐标系以窗口

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论