一、GDI 图形设备接口(GDI :Graphics Device Interface),它的主要任务是负责系统与绘图程序之间的信息交换,处理所有Windows程序的图形输出。
二、部分作用 图形设备接口(GDI)提供了一系列的函数和相关的结构,应用程序可以使用它们在显示器、打印机或其他设备上生成图形化的输出结果。
使用GDI函数可以绘制直线、曲线、闭合图形、 路径 、文本以及 位图图像 。
所绘制的图形的颜色和风格依赖于所创建的绘图对象,即画笔、 笔刷 和字体。
你可以使用画笔来绘制直线和曲线,使用 笔刷 来填充闭合图形的内部,使用字体来书写文本。
三、主要函数 图形设备接口函数包括以下几类: 位图 函数(Bltmap) 位图 是一个图形对象,可将 图像 作为文件进行创建、处理(比例缩放、滚动、旋转和绘制)和存储。
位图 函数提供了一系列处理位图的方法。
笔刷 函数(Brush) 笔刷 是一种绘图工具,Win32应用程序可使用它绘制多边形、椭圆形和路径的内部。
绘图应用程序使用 笔刷 绘制图形;字处理应用程序使用笔刷绘制水线;计算机辅助设计(CAD)应用程序使用笔刷绘制截面视图的内部; 电子表格 应用程序使用笔刷绘制饼图的扇形和直方图的方条。
笔刷 函数提供了一系列创建和使用笔刷的方法。
剪裁函数(Clipping) 剪裁是一种处理过程,它将输出到某个区域或路径中的内容限制在应用程序窗口的显示区内。
剪裁函数提供了一系列处理剪裁区域的方法。
颜色函数(Color) 颜色是组成Win32应用程序所生成的图片和图像的一个重要元素。
Win32 API提供了一系列管理和使用画笔、 笔刷 、文本和 位图 的颜色的函数。
坐标空间 及映射函数(Coordinate Space and Transformation) Win32应用程序使用 坐标空间 和映射函数对输出的图形进行比例缩放、旋转、转换、剪裁和反射。
坐标空间 是基于笛卡尔坐标系统的一个平面空间。
该坐标系统要求有两个垂直相交的、长度相等的坐标轴。
共有4种 坐标空间 :现实坐标、页面坐标、设备坐标、 物理设备 坐标(显示区,或桌面,或打印纸的页面)。
映射方式就是改变("映射")对象的大小、方向和形状的一种算法。
设备环境函数(Device Context) 设备环境是一个结构,它定义了一系列图形对象及其相关的属性,以及会影响输出结果的绘图方式。
这些图形对象包括:画笔(用于画直线), 笔刷 (用于绘图和填充), 位图 (用于屏幕的拷贝或滚动),调色板(用于定义可用的颜色集),剪裁区(用于剪裁和其他操作),路径(用于绘图和画图操作)。
设备环境函数用于对设备环境进行创建、删除或获取信息。
填充图形函数(Filled Shape) 填充图形是一些几何图形,其轮廓由当前的画笔绘制,内部由当前的 笔刷 填充。
共有5种填充图形:椭圆,弦图,饼图,多边形,矩形。
填充图形函数用于对填充图形进行操作。
字体和文本函数(Font and Text) 字体用于在视频显示器或其他 输出设备 上绘制文本。
Win32 API提供了一系列用于安装、选择和查询各种字体的字体和文本函数。
ICM 2.0函数 Microsoft Windows 98和Windows NT 5.0所使用的颜色管理方案称为 Image Color Management版本 2.0,或ICM2.0,由一系列函数组成。
直线和曲线函数(Line and Curve) 直线和曲线用于在光栅设备上绘制输出图形。
一条直线是 光栅显示器 上的一系列高亮像素点(或打印纸上的一系列点),由两个点进行标识:起点和终点。
一条规则曲线也是光栅显示器上的一系列高亮像素点(或打印纸上的一系列点),符合某个二次曲线段的周界(或一部分)。
不规则曲线则是由不符合二次曲线段的一系列像素点组成。
元文件函数(Metafile) 元文件是一个结构的集合,这些结构是以与设备无关的格式存储图像。
设备无关是元文件与 位图 的差异之一。
与 位图 不同,元文件保证是与设备无关的。
不过,元文件有一个缺点:它通常比 位图 的绘图速度慢。
因此,如果一个应用程序要求有较快的绘图速度,而不需要具有设备无关性,则应该用 位图 代替元文件。
元文件函数提供了一些对元文件进行操作的方法。
多显示器支持函数(Multple Display Monltors) 每个Windows 工作站 所支持的显示器个数是不受限制的。
可以用创建邻接区域的方式安排多个显示器。
每个显示器的大小和颜色深浅都可以独立设置。
所有的显示器屏幕一起构成了一个虚拟屏幕。
桌面窗口覆盖整个虚拟屏幕,而不仅仅是某个显示屏幕。
由于现有的应用程序都要求显示器具有一个原点坐标(0,0),所以虚拟屏幕必须在某个显示器上包含原点坐标(0,0),这个显示器就被看作是主显示器。
每个物理显示设备都由一个HMONITOR类型的显示器句柄表示。
一个显示器在它的整个生存期间具有相同的HMONITOR值。
任何显示设备环境(DC)的Win32函数所返回的值都是主显示器的DC。
要想获取其他显示器的DC,可使用EnumDisplayMonitors函数。
系统对每个显示器调用 回调函数 ,为该显示器传入一个DC值。
用户可以使用该DC在该显示器上绘图。
绘图和画图函数(Painting and Drawing) 绘图和画图函数为应用程序提供了一系列在窗口中绘图的方法,以及如何创建和使用显示设备环境(DC)的方法。
路径函数(Path) 一个路径是指一个或多个被填充、被绘制轮廓或既被填充又被绘制轮廓的图形(或形状)。
Win32应用程序将 路径 用作很多用途,在绘图和画图应用程序中使用路径。
计算机辅助设计(CAD)应用程序用路径来创建唯一剪裁区,绘制不规则形状的轮廓,以及填充不规则形状的内部。
路径函数用于创建、改变和绘制路径。
画笔函数(Pen) 画笔是Win32应用程序用于绘制直线和曲线的图形工具。
画图应用程序使用画笔来画手画线、直线以及曲线。
计算机辅助设计(CAD)应用程序用画笔来画可见线、隐藏线、截面线、中心线等等。
字处理和 桌面出版 应用程序用画笔来画边界和水线。
电子表格 应用程序用画笔来指明图表的趋向,以及勾勒直方图和饼图的轮廓。
画笔函数提供了一系列使用画笔的方法。
打印和打印假脱机函数(Printing and Print Spooler) Microsoft Windows和Windows NT提供了一套完整的函数,使应用程序可以在不同的设备上进行打印,如激光打印机,向量绘图仪,光栅打印机,以及传真机等。
矩形函数(Rectangle) Win32应用程序使用矩形来指定显示屏幕上或窗口中的一个矩形区域。
矩形函数用于对矩形进行操作。
区域函数(Region) 区域是指一个可被填充、着色、转换和加外框的形状,包括矩形、多边形或椭圆(或这几种形状的组合),用于完成击键测试(测试光标位置)。
区域函数用于对区域进行操作。
