C#------GDI 与 GDI+ 与GUI的区别

C#------GDI 与 GDI+ 与GUI的区别

【GDI与GDI+】

  1. GDI是硬件加速的,而GDI+不是的,而且GDI+2.0比GDI+更快。
  2. GDI是有状态的,而GDI+是无状态的。
  3. GDI绘图要使用设备环境和句柄;而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+与GUI的区别

  GDI是图形设备接口,指的是有图形编程有关的一系列接口,包括了绘图的所有元素,例如画笔,画刷,调色盘,矩形等所有和绘图有关的东西。这些都被MFC封装在CDC类中,这个类包含了所有的绘图函数。

  GUI是图形用户接口,指的是用户和计算机有一个操作界面,用户在这个界面上的操作都是可见的;


UI的四个阶段:GLI、GUI、NUI、OUI

GLI:Command Line Interface

GUI:Graphical User Interface

NUI:Natural user interface

OUI:Organic user interface

这是 4 种 Ul 的表现形式,只是恨据输入技术的进步,演化出的的不同交互方法。而在 GUI 之后,到底哪种交互方式能在未来广泛流行,现在下结论还为时过早。所以发展的 4 个阶段。我并不认为 4 种 UI 形主

GLI: Command Unelnterface 命令行界面。

GLI是在图形用户界面得到普及之前使用最为广泛的用户界面,以键盘为输入源(不支持鼠标),用户通过键盘输入指令,计登机接收到指令后,予以执行。也有人称之为字符用户界面。 CU 在但字员群体中,仍然是使用非常广泛的一种 UI 交互方式。

GUI : Graphical User Interfacer 图形用户界面。

GUI 是指采用图形方式显示的计算机操作用户接口。与早斯计葺机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。GUI和CLI最大的不同是,GUI引入鼠标为输入源(后期又以触屏为输入),这便得 GUI 的交互成为可能。

NUI : Natural user interface 自然用户界面.

NUI概念是近几年才逐渐流行起来,但定义本身存在争议。我自己把 NUI划分为狭义 NUI和广义 NUI 两种。狭义的 NUI :是指以苹果为代表的厂商掀起的一股对 GUI 的升级改造活动,狭义的NUI依然以图形界面为基础,但通过改进输入方式(电容屏、多点触控、滑动)等更为自然的方式交互,使的用户操作更为自然,往往2、3、岁的儿童就要掌握操作的要点。广义的NUI:则是指利用“手势”、"语音"、“视觉"“姿势”、“感知” n 等一系列更自然的方式,同计葺机(机器人)进行交互.而我近年研究就是广义 NUI这个范畴,特点是借助于多维度的’‘自然”输入,和人工智能的技术,实现人与机器人的双向交互。

OUI : organic user interface

(猜测是这个定义),有机用户界面。OUI并不登是一个虚无的概念,因没有流行的产品出现,甚至没有中文翻译,我这里只好把他翻译为’‘有机用户界面“。OUI是一种基于柔性显示技术的新型Ul形式,其主要在于输入即输出。即显示屏幕的显示表面及物理形变本身就是用户交互的轨迹。随着柔性屏幕逐渐进入市场,OUI的内涵或许会逐渐充实起来,并被广泛应用。

posted @   郝阳坤  阅读(1009)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示