2.3.3 GDI+ 图像输出
GDI可理解为一个可执行程序,它处理来自windows应用程序的图形函数调用,然后把这些调用传递给合适的设备驱动程序,由设备驱动程序来执行与硬件相关的函数,并产生最后的输出结果。GDI可看做是一个应用程序与输出设备之间的中介,一方面,GDI向应用程序提供了一个设备无关的编程环境,另一方面,它又以设备相关的格式和具体设备打交道。
要想在屏幕或者其它输出设备上输出图形或者文字,那么我们就必须先获得一个称为设备描述表( DC:Device Context)的对象的句柄,以它为参数,调用各种GDI函数实现各种文字或图形的输出[9]。
设备描述表是GDI内部保存数据的一种数据结构,此结构中的属性内容与特定的输出设备(显示器,打印机等)相关,属性定义了GDI函数的工作细节,在稍后我们将看到如何使用TextOut函数输出文字,在这里属性确定了文字的颜色,x坐标和y坐标映射到窗口显示区域的方式等。
设备描述表句柄一旦获得,那么系统将使用默认的属性值填充设备描述表结构。如果有必要,我们可以使用一些GDI函数获取和改变设备描述表中的属性值。
2.4 Windows图形绘制
2.4.1 windows图形子系统基本原理
Windows操作系统具有最明显的特点是具有图形化用户界面,这种技术大大改善了用户体验,使得大量的普通使用者能方便的学习和使用Windows操作系统,这是微软取得巨大成功的一个重要因素。
Windows操作系统针对图形开发也提供了强大的编程接口,使得开发者可以方便的在Windows上面开发具有专业效果的图形化用户界面软件[10]。在Windows以前,开发者要实现图形化用户界面,则需要具备相当多的计算机硬件知识,计算机软件业界在图形化用户界面方面进展缓慢,而Windows则提供了一个很方便的图形开发平台,使得大量的图形化用户界面软件迅速涌现,从而推动了计算机软件业界整体快速发展[11]。
Windows操作系统中包含了一个图形子系统,专门用于管理各种图形输出设备,包括显示器,打印机,绘图仪等。由于Windows系统启用保护模式,应用程序没有权限直接访问计算机硬件,因此都必须调用Windows的图形子系统来操作图形设备。下图就是Windows环境下图形软件的基本原理。 典型地物光谱库系统设计与实现(5):http://www.751com.cn/jisuanji/lunwen_6449.html