第9章 GDI+
9.1 GDI+概述
GDI(Graphic Device Interface,图像设备接口)是早期Windows操作系统的一个可执行,位于C:\\Windows\System32文件夹中,文件名为GDI.exe。GDI+ 是GDI的升级版本,提供了各种丰富的图形图像处理功能,统一在.Net Framework中封装和定义。
在.Net Framework中,GDI+ 被封装在如下几个命名空间中。
(1)System.Drawing: 提供了对GDI+基本图形功能的访问,其中Graphics类是整个GDI+的核心,能够绘制线条、曲线、图形、图像和文本的画面。其他类需要和Graphics类配合使用。在System.Drawing中,常见的类与结构如下表所示:
表9-1 GDI+常用的类与结构说明
类或结构 |
说明 |
Graphics |
封装一个GDI+绘图图面 |
Bitmap |
封装GDI+位图,用于处理由像素数据定义的图像的功能 |
Brush |
用于创建画笔对象,以填充图形的内部 |
Font |
定义特定的文本格式,包括字体、字号和字形属性 |
Pen |
定义用于绘制直线和曲线的钢笔对象 |
Region |
指示由矩形和由路径构成的图形形状的内部 |
SolidBrush |
定义单色画笔 |
StringFormat |
封装文本布局信息、显示操作和OpenType功能 |
Color |
表示一种ARGB颜色(alpha、红色、绿色、蓝色) |
Point |
表示在二维平面中定义点的整数x和y坐标的有序对 |
PointF |
表示在二维平面中定义点的浮点x和y坐标的有序对 |
Rectangle |
存储一组整数,共4个,表示一个矩形的位置和大小 |
Size |
存储一个有序整数对,通常为矩形的宽度和高度 |
SizeF |
存储有序浮点数对,通常为矩阵的宽度和高度 |
ARGB与RGB、RGBA的区别
https://blog.csdn.net/caption_deng/article/details/52366907
(2) System.Drawing.Drawing2D: 提供了高级的二维和矢量图形功能,主要有梯度型画刷、Matirx类和GraphicsPath类等。
(3) System.Drawing.Image: 提供了高级GDI+图形处理功能。
(4) System.Drawing.Text: 提供了高级GDI+字体和文本排版功能。
Windows操作系统的GDI+服务分为以下3个主要部分:
(1) 二维矢量图形
矢量图形由图元(如线条、曲线和图形)组成,它们由一系列坐标系统的点集组成。GDI+提供了用于存储这些图元本身信息的类或结构体,也提供了绘制图元的类。例如,Rectangle结构体存储了一个矩形的尺寸位置;Pen类存储线条颜色、线条宽度,以及线条样式等信息;Graphics类提供绘制线条、矩形、路径和其它图形的方法;而Brush类存储了在闭合图形内部填充颜色和图案的信息。
(2) 图形处理
有些图片很难用矢量图形表示,这种类型的图像采用位图进行存储,即由表示屏幕上独立点颜色的数字型数组所组成。GDI+中提供了若干种类,可实现快速存取和显示。例如,CachedBitmap类可用于存储一张缓存在内存中的图片。
(3) 图文混排
图文混排是文字处理或绘图软件的基础功能,关系到文字以何种字体、尺寸和样式在绘图区域中的具体显示和控制,GDI+为这种复杂的任务提供广泛的支持。