zoukankan      html  css  js  c++  java
  • GDI+和GDI区别以及一些新特征

    【GDI+与GDI】 -- 都是硬件加速的

    1. GDI+是GDI的下一个版本,它进行了很好的改进,并且易用性更好。

    GDI的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,

    也就是说,GDI是一个中低层API,你还可能要知道设备,而GDI+是一个高层的API,你不必知道设备。

    2. GDI是有状态的,而GDI+是无状态的。

    3. GDI绘图要使用设备环境(DC)和句柄(Handle);而GDI+全部交由Graphics类管理。

    4. GDI绘图时可以使用SelectObject频繁切换图形对象,而GDI+的图形对象是独立的。

    5. GDI中存在一个“当前位置”(全局区),目的是提高绘图性能;而GDI+取消了它,以避免绘图时不确定这个“当前位置”而带来非预期的错误。

    6. GDI总是将画笔和画刷绑定在一起,即使不需要填充一个区域也必须指定一个画刷;而GDI+则可以使用不同的函数分开使用画笔和画刷。


    【GDI+新特性】

    1. 改进了颜色管理。GDI+不仅提供了更多可供选择使用的颜色,使其支持Alpha通道合成运算,而且还保持了与其他颜色的兼容性。

    2. 绘图支持反锯齿。通过设置GDI+对象的相关属性,GDI+可以与相关的显示驱动程序搭配完成图形绘制时的反锯齿功能,使得绘制的图形更加平滑,美观,而整个过程是由GDI+对象自动计算完成的。

    3. 提供渐变画刷。GDI+拓展了GDI的功能,提供线性渐变和路径渐变画刷来填充图形、路径和区域,甚至也可用来绘制直线、曲线等。

    4. 独立的路径对象。GDI+使用Graphics对象来进行绘图操作,并将路径操作从Graphics对象分离出来,提供一个Graphics类供用户使用,用户不必担心对象会受到Graphics对象操作的影响,从而可以使用同一个操作对象进行多次的路径绘制操作。

    5. 样条曲线。GDI+封装了绘制基数样条曲线和贝塞尔样条曲线的方法。

    6. 变形和矩阵运算。GDI+提供了功能强大的Matrix类来实现矩阵的旋转,错切、平移、比例等变换操作,以便产生复杂的新图形。

    7. 多图片格式的支持。GDI+该进了图形处理能力,通过GDI+,用户能够访问多种格式的图片文件,转换文件格式等,还能进行图像重新着色、色彩修正、消除走样等图像处理。

     -----

    【GDI+版本】

    1.  .NET版本

         System.Drawing   提供基本的图形功能,包括绘图表面,图像,颜色,笔刷,钢笔和字体。

         System.Drawing.Drawing2D  提供高级光栅和矢量图形功能

         System.Drawing.Imaging   提供高级图像功能

         System.Drawing.Printing  提供打印和打印预览功能

         System.Drawing.Text   提供高级字体功能

         System.Drawing.Design  提供的功能可增强对自定义控件的设计时支持,包括开发定制UITypeEditor类的类,它允许在Visual Studio.NET的设计窗口中定制自定义控件的行为。

    2.  C++版本

         包含在GdiPlus命名空间之下。

    GDI+类图结构:具体参看msdn

  • 相关阅读:
    《浪潮之巅》读后感
    学习进度表
    学习进度表
    兴趣问题清单
    第六周周结
    价值观作业
    学习进度表
    第三次作业(问卷调查)
    第五周(生成动态表格)
    【Other】LanProxy内网穿透
  • 原文地址:https://www.cnblogs.com/kekec/p/1837427.html
Copyright © 2011-2022 走看看