GDI:

GDI在Windows中定义为Graphics Device Interface,即图形设备接口,是Windows API(Application Programming Interface)的一个重要组成部分。它是Windows图形显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具体设备的细节,而只需在一个虚拟的环境(即逻辑设备)中进行操作。它的桥梁作用体现在:

(1)用户通过调用GDI函数将逻辑空间的操作转化为具体针对设备驱动程序的调用。

为实现图形设备无关性,Windows 的绘图操作在一个设备描述表上进行。用户拥有自己的"逻辑坐标"系统,它独立于实际的物理设备,与"设备坐标"相对应。开发Windows应用程序时,程序员关心的是逻辑坐标,我们在逻辑坐标系上绘图,利用GDI将逻辑窗口映射到物理设备上。

(2)GDI能检测具体设备的能力,并依据具体的设备以最优方式驱动这些设备,完成真实的显示。

GDI函数大致可分类为:设备上下文函数(如GetDC、CreateDC、DeleteDC)、 画线函数(如LineTo、Polyline、Arc)、填充画图函数(如Ellipse、FillRect、Pie)、画图属性函数(如SetBkColor、SetBkMode、SetTextColor)、文本、字体函数(如TextOut、GetFontData)、位图函数(如SetPixel、BitBlt、StretchBlt)、坐标函数(如DPtoLP、LPtoDP、ScreenToClient、ClientToScreen)、映射函数(如SetMapMode、SetWindowExtEx、SetViewportExtEx)、元文件函数(如PlayMetaFile、SetWinMetaFileBits)、区域函数(如FillRgn、FrameRgn、InvertRgn)、路径函数(如BeginPath、EndPath、StrokeAndFillPath)、裁剪函数(如SelectClipRgn、SelectClipPath)等。

GDI虽然使程序员得到了一定程度的解脱,但是其编程方式仍很麻烦。譬如,显示一张位图,程序员需要进行"装入位图―读取位图文件头信息―启用设备场景―调色板变换"等一连串操作。而有了GDI+,这些问题便迎刃而解了。

GDI+:
GDI+是GDI的增强版。它是微软在Windows 2000以后操作系统中提供的新接口,其通过一套部署为托管代码的类来展现,这套类被称为GDI+的"托管类接口"。GDI+主要提供了以下三类服务:

(1) 二维矢量图形:GDI+提供了存储图形基元自身信息的类(或结构体)、存储图形基元绘制方式信息的类以及实际进行绘制的类;

(2) 图像处理:大多数图片都难以划定为直线和曲线的集合,无法使用二维矢量图形方式进行处理。因此,GDI+为我们提供了Bitmap、Image等类,它们可用于显示、操作和保存BMP、JPG、GIF等图像格式。

(3) 文字显示:GDI+支持使用各种字体、字号和样式来显示文本。

GDI接口是基于函数的,而GDI+是基于C++类的对象化的应用程序编程接口,因此使用起来比GDI要方便。

GDI和GDI+的区别和联系相关推荐

  1. GDI 和GDI+ 混合编程

    主要来源于这篇文章 http://www.cnblogs.com/jcily/archive/2009/05/30/1492222.html?login=1#commentform 在Win32平台下 ...

  2. Windows GDI和GDI+编程实例剖析(1)

    Windows GDI和GDI+编程实例剖析(1) 作者:宋宝华  e-mail:21cnbao@21cn.com 1.基本概念 GDI在Windows中定义为Graphics Device Inte ...

  3. 初识GDI、GDI+

    GDI在Windows中定义为Graphics Device Interface,即图形设备接口,是Windows API(Application Programming Interface)的一个重 ...

  4. 【GDI】 GDI与GDI+

    GDI Graphics Device Interface,即图形设备接口,是Windows API的一个重要组成部分.它是Windows图形显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具 ...

  5. 【windows gdi+】GDI+ Image类加载图片时异常问题处理与分析

    问题描述: 项目里一个控件,需要加载本地图片,单张第一次加载的时候可以的,但是重新选择其他图片,会出现图片显示异常的现象. 直接上图,图片部分显示不全了. 问题分析: 一开始怀疑现象是有个图片重复选择 ...

  6. 再学 GDI+[16]: GDI+ 的颜色常量表

    颜色名称   颜色效果   颜色值 aclAliceBlue $FFF0F8FF aclAntiqueWhite $FFFAEBD7 aclAqua $FF00FFFF aclAquamarine $ ...

  7. html 脚本 gdi,基于gdi的简单画图

    画图软件 资源下载此资源下载价格为2D币,请先登录 资源文件列表 gdl/.gitattributes , 2581 gdl/.gitignore , 3997 gdl/.git/config , 6 ...

  8. 从GDI到GDI+使用的坐标系看微软二维绘图思路的进步

    1 微软Windows绘图系统使用的三种坐标系 为了便于绘制,微软在其绘图系统中引入了三种不同的坐标系,这三种坐标系都是平面直角坐标系,下面从坐标系的三要素即度量单位.坐标原点.坐标轴方向分别对其进行 ...

  9. GDI+编程说明及小结

    原文地址:http://blog.csdn.net/byxdaz/article/details/5972759 GDI+(Graphics Device Interface Plus图形设备接口加) ...

最新文章

  1. Android/Ophone中的悬浮对话框和即点即关对话框
  2. Windows——在当前目录打开 PowerShell 命令窗口
  3. 1.关于QT中json数据处理和密码md5加密
  4. python创建字符串数组_如何创建任意长度字符串的numpy数组?
  5. qpython3怎样安notebook_Windows下基于Python3安装Ipython Notebook(即Jupyter)。python –m pip install XXX...
  6. spring基础整理
  7. Effective C++阅读笔记
  8. Linux的Open Files设置过小导致程序退出并且Unable to create new native thread
  9. AndroidStudio_在android中使用properties配置文件_进行配置_只能读取配置_不能写入配置_放在assets---Android原生开发工作笔记230
  10. matlab打开时总闪一下才打开_大家装窗帘轨道时,是不是多数都是下面这样的: 打开网易新闻 查看更多图片 或者做个窗帘盒,遮盖一下?...
  11. Hibernate 中upate,savaOrUpdate,merge的区别
  12. html 源码_(带手机版数据同步)中国风古典园林石业织梦模板 水墨风格园林艺术网站源码下载...
  13. 安卓10源码开发定制(21)GPS定位研究(3)修改GPS定位数据测试gps定位代码
  14. mysql max over_max() over()
  15. 知道一个公司的网站地址,怎么快速获取邮箱。
  16. 网课查题微信公众号如何搭建步骤
  17. 定时任务:springboot集成Quartz实现多任务多触发的动态管理
  18. IDEA启动显示 找不到应用程序
  19. win11系统下 安装成功ENVI5.6sarscape但不显示插件
  20. html 文本换行 \n 不换行 空格无效

热门文章

  1. 2020年高压电工答案解析及高压电工新版试题
  2. AB实验中最小样本量的计算
  3. 【Python】pickle写入加载数据
  4. 全面开花,势如破竹------联想业绩创新高的启示
  5. 设计模式面试复习,为你的春招做准备!
  6. 在苹果MAC OS X Lion系统上安装、升级、使用Communicator(OC) for MAC 2011
  7. 第三方登录功能的实现之 QQ登录 - 未绑定
  8. Linux mkdir命令:创建目录(文件夹)
  9. UIApplicationOpenSettingsURLString闪退
  10. 第4章 分布式数据库HBase