问答1 问答5 问答50 问答500 问答1000
网友互助专业问答平台

“GDI“ 和“GDI+”有区别吗?

提问网友 发布时间:2022-03-24 21:17
“GDI“ 和“GDI+”有区别吗?
声明:本网页内容为用户发布,旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:1656858193@qq.com
1个回答
热心网友 回答时间:2022-03-24 22:46
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的增强版。它是微软在Windows 2000以后操作系统中提供的新接口,其通过一套部署为托管代码的类来展现,这套类被称为GDI+的"托管类接口"。GDI+主要提供了以下三类服务:

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

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

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

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

参考资料:http://dev.yesky.com/255/2190255.shtml

本文如未解决您的问题请添加抖音号:51dongshi(抖音搜索懂视),直接咨询即可。

相关推荐
  • d3d和gdi的区别

    d3d和gdi的区别

    1、D3D和GDI性能最大的差别在于使用GPU还是CPU来计算数据并输出绘制。d3d是GPU所以性能更好。2、GDI是图形设备接口的英文缩写,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形和图像输出。
    查看详情
gdi和gdi+的区别 direct3D和OpenGL有什么区别?玩游戏哪个更好 gdi和gdi+的区别和联系 OPENGL与DIRECT3D有啥区别? CS中D3D和OPENGL画面效果有什么不同吗? 对一个2D的游戏,DirectX和GDI+的性能差别大吗 OpenG和D3D有什么区别? directdraw与GDI区别 视频渲染D3D模式是用显卡进行处理 硬解也是用显卡进行处理 两者有什么区别吗? d3d和openGL有什么区别? d3d和openGL有什么区别 GDI与OpenGL与DirectX之间的区别 gtk qt, opengl d3d, 这些图形库有什么区别? d3dgdi哪个画质更好 视频播放器中的D3D和GDI哪个播放不卡? win8.1用渲染器类型D3D与GDI选哪个好 渲染模式d3d gdi的区别 抖音给点赞的人自动回复文字怎么取消 抖音怎么取消自动回复消息 自动回复太多了怎么删除 [求助D3D画2D]从GDI系列到DirectX的思路怎么转变 荣耀20青春版配置 比较好的千元机 oppoa8和荣耀20青春版哪个好一点? 荣耀20怎么样值得买吗? oppoa52和荣耀20青春版哪个好? 华为哪款手机适合父母 2021千元以下机性价比高的手机排行是怎么样的? vivoⅹ23手机和荣耀20青春版手机哪款最对用? 荣耀20青春版有什么暗病吗? 哪几台华为手机几乎“无差评”呢? 一千五左右的手机排名 华为一千五左右的手机哪款好 华为荣耀10青春版参数内容? 目前一千价位左右的手机哪几款性价比较高? 荣耀20青春版和红米k20pro那个好? htcj 是什么牌子 HTC J(Z321e) HTC X920e DLX U 跟HTC Droid DNA是同一型号吗? 求告知HTC J butterfly和OPPO FIND 5哪个好
Top