gdi 订阅
GDI是图形设备接口的英文缩写,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形和图像输出。GDI的出现使程序员无需要关心硬件设备及设备正常驱动,就可以将应用程序的输出转化为硬件设备上的输出和构成,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。 展开全文
GDI是图形设备接口的英文缩写,主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形和图像输出。GDI的出现使程序员无需要关心硬件设备及设备正常驱动,就可以将应用程序的输出转化为硬件设备上的输出和构成,实现了程序开发者与硬件设备的隔离,大大方便了开发工作。
信息
特    点
方便开发工作
任    务
负责系统与绘图程序的信息交换
中文名
图形设备接口
外文名
GDI(Graphics Device Interface)
GDI基本介绍
GDI是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。在Windows操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其它输出设备上输出图形,文本等操作。
收起全文
精华内容
下载资源
问答
  • GDI GDI GDI

    2010-12-13 14:12:19
    GDI GDI GDI GDI GDI GDI GDI
  • GDI

    2013-08-04 23:21:53
    获取GDI对象的信息:获得GDI对象的一些信息可以通过调用GetObject函数来实现。 DC和GDI设备之间的关系:DC主要描述绘图的状态和方式;GDI设备主要描述了采用什么样的绘图工具。 颜色值:RGB和ARGB。RGB三个...

    设备环境DC(也称为设备上下文,和设备描述表),它时一个关于如何绘制图形的方法的集合,它即可以绘制各种图形,也可以确定在应用窗口中绘制图形的方式,也就是绘图模式和映射模式。在Win32编程中,设备环境是用HDC来标识。

    获得相应窗口的HDC:GetDC和ReleaseDC;BeginPaint和EndPaint;创建兼容内存DC,CreateCompatibleDC和DeleteDC。

    GetDC函数适合在窗口现有图形的基础上进行绘制。

    BeginPaint函数是将窗口上所有内容清除干净,然后在上面绘制。

    通过调用CreateCompatibleDC函数来创建与目标DC兼容的内存DC,一般用于解决界面闪烁的问题。CreateCompatibleDC用一个目标DC创建一个新的内存DC,将在内存中保存目标DC的值,然后修改此内存DC,修改后,使用BitBlt将内存DC拷贝覆盖目标DC显示出来。

    常用GDI对象的介绍:

    画笔Pen,在GDI中,用HPEN来表示画笔。在GDI中,画线,画边框都是采用画笔来操作的。

    画刷BRUSH,在GDI中,用HBRUSH来表示画刷,填充矩形,填充圆,填充饼以及刷窗口背景都是通过画刷来操作的。

    字体Font,用HFONT来表示字体,所有的文本绘制,都是要基于具体的字体对象来绘制。

    区域Region,在GDI中用HRGN来表示区域,在窗口中,一个区域可以使椭圆形,多边形,或是更常见的矩形。

    位图Bitmap:用HBITMAP来表示位图,GDI的绘制,大体上分为图形绘制和图像绘制,对于线,矩形,圆,饼等的绘制都是属于图形绘制,而对于位图的绘制是属于图像绘制。

    使用SelectObject函数来将GDI对象选入到DC中来。

    库存GDI对象的使用:可以通过对象的ID号来获得库存的GDI对象。GetStockObject(int OBJECTID).库存GDI对象即不需要创建,也不需要销毁,是共享Windows预定义创建的GDI对象。

    获取GDI对象的信息:获得GDI对象的一些信息可以通过调用GetObject函数来实现。

    DC和GDI设备之间的关系:DC主要描述绘图的状态和方式;GDI设备主要描述了采用什么样的绘图工具。

    颜色值:RGB和ARGB。RGB三个分量各占一个字节,所以RGB实际占用的是三个字节。ARGB中A表示透明度信息,ARGB实际占用的是四个字节。

    将画刷等对象选入设备环境之后才能进行绘图输出的编程方式称为状态模型编程,GDI+使用的是非状态模型编程。

    在GDI+中,绘制矩形和填充矩形内部这两个过程是分开的。

    GDI+中的图形路径:路径是通过直线、矩形和简单的曲线形成的。

    在GDI+中,GraphicsPath对象允许将这些构造块序列收集到一个单元中,调用一次Graphics类的DrawPath方法,就可以绘制出整个序列的直线、矩形、多边形和曲线。

    展开全文
  • gdigdi+

    2021-01-20 08:37:38
    gdi DC 获取DC // 第一种 ::GetDC(hWnd); ::ReleaseDC(hwnd, hdc); // 第二种 PAINTSTRUCT ps; ::BeginPaint(hwnd, &ps); ::EndPaint(hwnd, &ps); // 第三种 创建兼容内存DC HDC hMemDC = ::CreateCompatibleDC...
  • GDI+编程
  • WindowsGDIGDI.pdf

    2021-10-06 22:45:19
    WindowsGDIGDI.pdf
  • GDI输出文字1_GDI文字_gdi输出文字_vbgdi.zip
  • GDI+ 编程 GDI+ 编程 GDI+ 编程 GDI+ 编程
  • GDIGDIGDI+

    2020-02-15 11:55:52
    GDI Graphics Device Interface,即图形设备接口,是Windows API的一个重要组成部分。它是Windows图形显示程序与实际物理设备之间的桥梁,GDI使得用户无需关心具体设备的细节,而只需在一个虚拟的环境(即逻辑设备...

    GDI

    Graphics Device Interface,即图形设备接口,是Windows API的一个重要组成部分。它是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的后续版本,最早于2001年随WinXP一起推出,后来又被包装进.NET框架的托管类库中,成为.NET中窗体绘图的主要工具。

    GDI+主要提供了以下三类服务:

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

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

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

    GDI接口是基于函数的,而GDI+是基于C++ OO的编程接口,因此使用起来比GDI要方便。因为GDI+实际上是GDI的封装和扩展,所以执行效率一般要低于GDI。

    展开全文
  • GDI参考手册 详细有使用说明 给学习GDI的人一份参考
  • GDI输出可透明、无锯齿的文字、可根据行长度自动换行,非常适用于图片生成使用
  • GDI输出文字1_GDI文字_gdi输出文字_vbgdi_源码.zip
  • GDI_Text_GDI_Text_源码

    2021-10-01 10:07:06
    GDI_Text EAMPLE WITH VS2010
  • GDI_Polygon example with VS2010
  • C#GDI绘图C#GDI绘图C#GDI绘图C#GDI绘图C#GDI绘图C#GDI绘图
  • GDI GDI+从入门到精通

    2018-06-25 14:56:53
    GDI GDI+从入门到精通,课件PPT,包含一、二、三、四、五讲。
  • GDI编程基础GDI编程基础GDI编程基础GDI编程基础
  • 计算机图形学演示示例,C++ GDI编程,某高校的实验课作业
  • C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战C#GDI+小游戏 飞机大战
  • GDI_LINES2_GDI_LINES2_源码

    2021-09-29 06:56:44
    GDi EXAMPLE WITH VC6.0
  • GDI+绘图_C#_gdi+_源码

    2021-10-03 07:07:27
    C#GDI+绘图源码,适合初学者参考学习使用。
  • GDI+的说明 GDI+的说明 GDI+的说明 GDI+的说明
  • GDI+程序设计 GDI+程序设计 GDI+程序设计 GDI+程序设计
  • GDI GDI+ 的区别

    千次阅读 2019-04-23 14:55:39
    GDI的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,也就是说,GDI是一个中低层API,你还可能要知道设备,而GDI+是一个高层的API,你不必知道设备。例如你如果要设置某个...

    GDI+是GDI的下一个版本,它进行了很好的改进,并且易用性更好。GDI的一个好处就是你不必知道任何关于数据怎样在设备上渲染的细节,GDI+更好的实现了这个优点,也就是说,GDI是一个中低层API,你还可能要知道设备,而GDI+是一个高层的API,你不必知道设备。例如你如果要设置某个控件的前景和背景色,只需设置BackColor和ForeColor属性。 

    编程模式的变化 
    “GDI uses a stateful model, whereas GDI+ uses a stateless”——GDI是有状态的,GDI+是无无状态的。

    1、不再使用设备环境或句柄 
      在使用GDI绘图时,必须要指定一个设备环境(DC),用来将某个窗口或设备与设备环境类的句柄指针关联起来,所有的绘图操作都与该句柄有关。而GDI+不再使用这个设备环境或句柄,取而代之是使用Graphics对象。与设备环境相类似,Graphics对象也是将屏幕的某一个窗口与之相关联,并包含绘图操作所需要的相关属性。但是,只有这个Graphics对象与设备环境句柄还存在着联系,其余的如Pen、Brush、Image和Font等对象均不再使用设备环境。 

    2、Pen、Brush,Font,Image等对象是图形对象独立的
      画笔对象能与用于提供绘制方法的图形对象分开创建于维护,Graphics绘图方法直接将Pen对象作为自己的参数,从而避免了在GDI使用SelectObject进行繁琐的切换,类似的还有Brush、Path、Image和Font等。 

    3、“当前位置”
      GDI绘图操作(如画线)中总存在一个被称为"当前位置"的特殊位置。每次画线都是以此当前位置为起始点,画线操作结束之后,直线的结束点位置又成为了当前位置。设置当前位置的理由是为了提高画线操作的效率,因为在一些场合下,总是一条直线连着另一条直线,首尾相接。有了当前位置的自动更新,就可避免每次画线时都要给出两点的坐标。尽管有其必要性,但是单独绘制一条直线的场合总是比较多的,因此GDI+取消这个"当前位置"以避免当无法确定"当前位置"时所造成的绘图的差错,取而代之的是直接在DrawLine中指定直线起止点的坐标。    

    4、绘制和填充
      GDI总是让形状轮廓绘制和填充使用同一个绘图函数,例如Rectangle。轮廓绘制需要一个画笔,而填充一个区域需要一个画刷。也就是说,不管我们是否需要填充所绘制的形状,我们都需要指定一个画刷,否则GDI采用默认的画刷进行填充。这种方式确实给我们带来了许多不便,现在GDI+将形状轮廓绘制和填充操作分开而采用不同的方法,例如DrawRectangle和FillRectangle分别用来绘制和填充一个矩形。    

    5、区域的操作
      GDI提供了许多区域创建函数,如:CreateRectRgn、CreateEllpticRgn、CreateRoundRectRgn、CreatePolygonRgn和CreatePolyPolygonRgn等。诚然,这些函数给我们带来了许多方便。但在GDI+中,由于为了便于将区域引入矩阵变换操作,GDI+简化一般区域创建的方法,而将更复杂的区域创建交由Path接管。由于Path对象是与设备环境分离开来的,因而可以直接在Region构造函数中加以指定。

    ====================================================================
    GDI+和GDI区别以及一些新特征 

    【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+,用户能够访问多种格式的图片文件,转换文件格式等,还能进行图像重新着色、色彩修正、消除走样等图像处理。

     

    感谢原作者的分享!

    本文转载自:https://www.cnblogs.com/lidabo/p/3701252.html

    展开全文
  • GDI_Polygon2 EXAMPLE WITH VS2010
  • 本资源有本人整理所得,包含GDI/GDI+ 的介绍(见本人博客)、GDI+SDK安装包,GDI+SDK的中文教程。
  • GDI +中使用GDIGDI +混合橡胶带线
  • GDI 顽皮的GDI项目可赚取积分
  • GDI三角板.rar

    2020-04-04 22:55:52
    GDI三角板.rar GDI三角板.rar GDI三角板.rar GDI三角板.rar GDI三角板.rar GDI三角板.rar
  • GDIGDI+动画程序

    2013-12-19 17:10:45
    本例子是自己写的,有两个界面,一个是GDI界面,一个是GDI+,并且支持动画,以及两者的对比,对于学习GDIGDI+开发界面程序,特别是动画的机制,有很大的帮助!
  • VC GDI+进阶1:初识GDI+.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 68,088
精华内容 27,235
关键字:

gdi