none
哪位能对比下DirectX与GDI+这两种技术呢 RRS feed

Todas as Respostas

  • 你好!

        是这样的,两种技术并不是同一个层次的技术,DirectX更底层一些,GDI+ 是对它的一种封装和实现,方便编程的人员使用的。实际上DirectX和OpenGL才是对应的技术。

        可以参考一下百科上的解释:

    GDI是Graphics Device Interface的缩写,含义是图形设备接口 ,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。

    在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI 所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作。GDI的出现使程序员无需要关心硬件设备及设备驱动,就可以将应用程 序的输出转化为硬件设备上的输出,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。   GDI具有如下特点: 1. 不允许程序直接访问物理显示硬件,通过称为“设备环境”的抽象接口间接访问显示硬件;   2. 程序需要与显示硬件(显示器、打印机等) 进行通讯时,必须首先获得与特定窗口相关联的设备环境;   3. 用户无需关心具体的物理设备类型;   4. Windows参考设备环境的数据结构完成数据的输出。

    DirectX可以参考:

    http://baike.baidu.com/view/15762.htm

     


    周雪峰
    segunda-feira, 25 de outubro de 2010 03:20
    Moderador
  • 谢谢您的回答,不好意思这么晚才回复。

    从程序员的角度来看,按照我的理解,GDI+作为Windows操作系统的一部分,就是Windows留给程序员进行有关UI编程的一套编程接口,这些API是以C/C++语言的形式被封装在了graphicplus.dll中。GDI+的角色就是作为我们编写的应用程序的一个代理来与图形硬件设备的驱动程序打交道,已完成有关绘图的逻辑。

    那么为什么说DirectX更底层一些呢?难道没有DirectX的话就不能进行GDI+编程吗?如果说GDI+是对DirectX的封装的话。

    quarta-feira, 8 de dezembro de 2010 06:33
  • 谢谢您的回答,不好意思这么晚才回复。

    从程序员的角度来看,按照我的理解,GDI+作为Windows操作系统的一部分,就是Windows留给程序员进行有关UI编程的一套编程接口,这些API是以C/C++语言的形式被封装在了graphicplus.dll中。GDI+的角色就是作为我们编写的应用程序的一个代理来与图形硬件设备的驱动程序打交道,已完成有关绘图的逻辑。

    那么为什么说DirectX更底层一些呢?难道没有DirectX的话就不能进行GDI+编程吗?如果说GDI+是对DirectX的封装的话。

    gdiplus并不直接与驱动程序打交道,而是借助更底层的api来实现。gidplus的下层api极有可能是老式的gdi,我查了半天也没有定论(但从其效率上来看应该八九不离十)

    就我而言,我是不喜欢gdi+这东西,一来效率太低,二来太复杂。真有需求那还不如去用DDraw或者DX graphic或者D2D去

    • Editado hr_999 sexta-feira, 27 de abril de 2012 11:25
    sexta-feira, 27 de abril de 2012 11:22
  • 它们是两种不同完全不同的图形编程接口,具体可以看一下 WiKi

    GDI+

    http://en.wikipedia.org/wiki/GDI%2B#GDI.2B

    DirectX

    http://en.wikipedia.org/wiki/DirectX

    感觉上 GDI/GDI+ 是一种相当古老的 API,应该比 DirectX 要老得多,它最终会被 Direct2D 和 DirectWrite 取代。。所以可以把 GDI+ 看成旧版本的 Direct2D


    学习学习....

    sábado, 28 de abril de 2012 03:01
  • 你好,

          简单的说,DirectX是一种可以利用HAL层直接驱动显卡的编程方式,由于显卡强大的处理能力,因此在图像处理时将更加迅速,从而是其快速兴起。

    而GDI+是利用CPU去渲染画面的方法,是从更为古老的GDI方式继承而来的,相对DX,它的效率在大部分情况下较低。

    相互学习

    YOUNG.


    terça-feira, 24 de março de 2015 09:00
  • DirectX是一个统称,其中有很多技术(DirectPlay、DirectSound、DirectMusic、DirectInput、DirectShow)之类等等并非用于作图。

    GDI+是一个基于GDI的显示和打印用的技术,

    如果只讨论作图的话,Direct3D和GDI+的主要区别是运算在GPU还是在CPU。GPU的显存就在显卡上,而CPU访问内存还要走一道主板总线,所以通常用CPU作图比较慢(例外是在显卡配置太低的机器上)



    Visual C++ MVP

    quinta-feira, 4 de junho de 2015 17:07
    Moderador