GDI是位于应用程序与不同硬件之间的中间层,这种结构让程序员从直接处理不同硬件的工作中解放出来,把硬件间的差异交给了GDI处理。...
### GDI与GDI+编程基础 #### GDI(图形设备接口) GDI(Graphics Device Interface)是微软为Windows操作系统开发的一个重要的API集合,它主要负责处理与图形相关的任务,如绘制线条、文本、图像以及处理窗口等。GDI位于应用程序与硬件设备之间,充当了一个中间层的角色,它的设计目的是为了简化开发者对不同硬件设备的支持。 **GDI的关键特点:** 1. **硬件抽象**:GDI使得程序员无需关注底层硬件的具体细节,它将这些细节隐藏起来,从而让开发者可以专注于应用程序本身的逻辑。 2. **设备独立性**:GDI能够确保应用程序在不同的图形输出设备上运行时,无需修改源代码。这意味着一个应用程序可以在点阵打印机、激光打印机或者屏幕显示器上运行,而无需针对每种设备编写特定的代码。 3. **图形输出转换**:GDI负责将应用程序中的图形指令转换为具体的硬件命令,这些命令可以直接被硬件设备理解并执行。 4. **存储形式**:GDI以文件的形式存在于系统中,当需要进行图形输出时,系统会将其加载到内存中。如果遇到非GDI命令,则可能需要加载相应的硬件驱动程序来辅助完成转换过程。 #### 设备环境 在GDI中,设备环境(Device Context, DC)是一种关键的概念。它代表了一个特定输出设备的上下文,比如屏幕或打印机。设备环境包含了用于绘制图形所需的所有信息,包括颜色模型、分辨率等。设备环境使得GDI能够正确地在不同的输出设备上渲染图形。 #### GDI+介绍 GDI+是GDI的一个升级版,它在原有的基础上引入了许多新的特性和改进,旨在提供更强大、更高效的图形处理能力。 **GDI+的关键改进:** 1. **易用性增强**:GDI+的设计更加注重易用性,它减少了程序员需要了解的底层细节,提供了更高层次的API。 2. **状态管理变化**:GDI+采用了无状态的编程模型,这与GDI的状态化模型形成对比。这意味着在GDI+中,绘图操作不再依赖于特定的设备环境或句柄。 3. **图形对象独立**:在GDI+中,诸如Pen、Brush、Font和Image等图形对象不再绑定到特定的设备环境,而是作为独立的对象存在,这大大简化了绘图操作的过程。 4. **当前位置的取消**:GDI+取消了GDI中的“当前位置”概念,转而直接在绘图方法中指定起始和终止点坐标,提高了绘图的准确性和灵活性。 5. **绘制和填充分离**:GDI+将形状的轮廓绘制和填充操作分开处理,这意味着开发者可以更灵活地控制图形的绘制方式。 #### GDI+编程模式的变化 1. **不再使用设备环境或句柄**:GDI+不再依赖于设备环境或句柄,而是使用`Graphics`对象来进行绘图操作。`Graphics`对象包含所有绘图所需的属性,并且可以与特定的屏幕窗口关联。 2. **图形对象的独立性**:在GDI+中,如`Pen`、`Brush`、`Font`和`Image`等图形对象不再绑定到特定的设备环境,而是作为独立的对象使用。这种方法减少了代码的复杂性,并提高了程序的可维护性。 3. **绘图和填充的分离**:GDI+将形状轮廓的绘制和填充操作分离,分别由不同的方法完成。例如,使用`DrawLine`方法绘制线条时,不再需要额外指定一个画刷来填充,仅需指定画笔即可。 4. **当前位置的取消**:在GDI+中,取消了GDI中存在的“当前位置”这一概念,这意味着在绘制线条等操作时,需要显式地指定起点和终点坐标,这增加了绘图的准确性。 GDI+的这些改进不仅提高了图形处理的效率和灵活性,还极大地简化了开发者的工作流程,使得图形应用程序的开发变得更加简单高效。
剩余19页未读,继续阅读
- icyblue0012012-02-07请注意是GDI+的入门教程,是pdf格式的。下之前看清楚啊
- 粉丝: 3
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 金山PDF教育版编辑器
- 基于springboot+element的校园服务平台源代码项目包含全套技术资料.zip
- 自动化应用驱动的容器弹性管理平台解决方案
- 各种排序算法 Python 实现的源代码
- BlurAdmin 是一款使用 AngularJs + Bootstrap实现的单页管理端模版,视觉冲击极强的管理后台,各种动画效果
- 基于JSP+Servlet的网上书店系统源代码项目包含全套技术资料.zip
- GGJGJGJGGDGGDGG
- 基于SpringBoot的毕业设计选题系统源代码项目包含全套技术资料.zip
- Springboot + mybatis-plus + layui 实现的博客系统源代码全套技术资料.zip
- 智慧农场小程序源代码全套技术资料.zip