图 15-7 Vista 特效
为了适应更高的用户要求和用户体验的要求,微软对 GDI 进行了升级,就成为 GDI+。GDI+不仅
能够在 C++开发当中使用,也能够在.NET 中使用 GDI+强大的绘图效果。GDI+相比与 GDI,进行了一
些加强,这些加强功能如下所示。
渐变的画刷(Gradient Brushes):GDI+允许开发人员使用渐变的画刷来绘制线条、图形以及
外观。
基数样条函数(Cardinal Splines):GDI+支持基数样条函数而 GDI 不支持,基数样条能够防
止锯齿的出现,使得窗口以及图形的绘制能够平滑过渡。
持久路径对象(Persistent Path Objects):在 GDI 中,绘制路径在窗口更改需要通过重绘来保
持图形的持久化,而在 GDI+中,可以通过创建对个对象来持久化。
变形和矩阵对象(Transformations & Matrix Object):GDI+提供了强大的矩阵对象,开发人员
可以通过矩阵对象进行图形的翻转、平移和缩放。
可伸缩区域(Scalable Regions):GDI+允许在一定的范围内进行任何图形变换。
GDI+不仅包括这些新特性,还包括混合以及等多种图像类型支持等特性。ASP.NET 相对于 ASP 的
强大之处就在于 ASP.NET 可以使用 GDI+进行图形图像编程,实现不同的 Web 应用功能。
15.1.3 绘制线条示例
通 过 GDI+ 能够在 Web 应用 中 绘 制 线 条 , 如 果 需 要 使 用 GDI+ , 则 首 先 需 要 引 用 命 名 空 间
System.Drawing,示例代码如下所示。
using System.Drawing; //使用绘图命名空间
使用了命名空间后,就能够使用 System.Drawing 中的方法进行线条绘制,示例代码如下所示。
protected void Page_Load(object sender, EventArgs e)
{
Bitmap MyImage = new Bitmap(400, 400); //创建 Bitmap 对象
Graphics gr = Graphics.FromImage(MyImage); //创建绘图对象
Pen pen = new Pen(Color.Green, 10); //创建画笔对象
gr.Clear(Color.WhiteSmoke); //格式化画布
gr.DrawLine(pen, 50, 200, 400,20); //绘制直线
MyImage.Save(Response.OutputStream,System.Drawing.Imaging.ImageFormat.Jpeg); //输出
MyImage.Dispose(); //释放对象
gr.Dispose();
}
上述代码绘制了使用 GDI+的 Graphice 类的对象进行线条的绘制,当页面被载入时则会开始绘制线
条。当线条开始绘制时,首先需要创建一个 Bitmap 对象,Bitmap 对象处理由像素定义的图像对象,示
例代码如下所示。
Bitmap MyImage = new Bitmap(400, 400); //创建 Bitmap 对象
上述代码创建了一个 Bitmap 对象并定义该对象区域为 400*400,Bitmap 就像画布。Graphice 对象
能够在该区域内绘制图形图像,示例代码如下所示。
Graphics gr = Graphics.FromImage(MyImage); //创建绘图对象
定义了 Graphice 对象后就需要创建 Pen 对象进行绘制,Pen 对象就像画笔,能够在画布上绘制图形,
示例代码如下所示。
Pen pen = new Pen(Color.Green, 10); //创建画笔对象