标题：GDI+高级编程
基本信息
作者：杨建昌  出版社：清华大学出版社
ISBN：9787302212942
出版日期：2010 年1月
开本：16开
页码：543
版次：1-1
  
内容简介
本书立足gdi+的巧妙运用，以制造实用的用户界面为目标来介绍gdi+图形库的各个部分和功能。本书共分为7章，每一章介绍了特定主题内容。全书主要内容包括gdi+的概念，以及层次结构，gdi+的一般基础性能应用——windows基础控制的制作，包括带有视觉样式和没有视觉样式的基础控件；高级自定义创意控件的一般流程和方法；gdi+对字体和文字的支持；gdi+在处理动画上的应用；分形和分形艺术的概念，以及分形在现实生活中的应用；数字图像处理的相关技术。
本书采用c＃语言描述，面向对．net框架有一定认识并有一定编程经验的中高级读书。本书也可以作为对gdi+和c＃感兴趣的在校师生的参考读物。
编辑推荐
《GDI+高级编程》是由清华大学出版社出版的。《GDI+高级编程》采用C#语言描述，面向对.NET框架有一定认识并有一定编程经验的中高级读书。《GDI+高级编程》也可以作为对GDI+和C#感兴趣的在校师生的参考读物。
目录
第1章 .NET Framework 2.0图形设备接口 1
1.1 GDI+Vs GDI、DirectX、OpenGL 1
1.2 Visual Studio 2005集成开发环境与Visual C# 3
1.3 System.Drawing.dll程序集 13
1.4 本章小结 14
第2章 Windows视觉样式和WinForm基础控件 15
2.1 VisualStyles和ControlPaint类 15
2.1.1 视觉样式浏览器 16
2.1.2 ControlPaint类 31
2.1.3 Windows导航栏控件 34
2.2 分层窗口 42
2.2.1 分层窗口的概念 42
2.2.2 CreateParams类 44
2.2.3 使用分层窗口 46
2.3 颜色空间和拾色器 52
2.3.1 颜色空间 52
2.3.2 色彩转换 64
2.3.3 拾色器 75
2.4 本章小结 150
第3章 GDI+与.NET创意控件 152
3.1 不规则形状 152
3.1.1 Circle类 153
3.1.2 Circle类型转换器 159
3.1.3 高级衍生图形 163
3.1.4 WaitingCircle控件 167
3.2 坐标系统与度量单位 175
3.2.1 坐标系统 176
3.2.2 屏幕坐标与工作区坐标 179
3.2.3 度量单位 180
3.2.4 Ruler控件 183
3.3 矩阵变换 192
3.3.1 Matrix类 192
3.3.2 矩阵的仿射变换 194
3.3.3 全局变换和局部变换 199
3.3.4 Tuner控件 204
3.4 设计时支持 211
3.4.1 设计时框架 211
3.4.2 优化属性网格编辑 214
3.4.3 设计器 220
3.4.4 设计器序列化 236
3.4.5 调试设计时代码 243
3.4.6 自定义窗体设计器 244
3.5 添加音效 262
3.5.1 播放声音 262
3.5.2 音乐播放器 264
3.5.3 控制系统音量 272
3.6 管理双倍缓存 273
3.6.1 位图双缓存 273
3.6.2 BufferedGraphics类 278
3.7 本章小结 280
第4章 字体、文本和打印 281
4.1 字体概述 281
4.1.1 基本概念 281
4.1.2 TrueType与OpenType字体 283
4.1.3 Microsoft ClearType技术 284
4.1.4 GDI+中的字体 287
4.2 绘制格式化文本 289
4.2.1 文本修整 289
4.2.2 文本简排 290
4.3 测量文字大小 295
4.3.1 字体规格和排版 295
4.3.2 精确测量文字大小 299
4.4 3D效果文本 301
4.4.1 阴影文本 301
4.4.2 拉伸文本 302
4.4.3 浮雕及雕刻 303
4.4.4 镜像文本 304
4.5 沿路径文字 305
4.5.1 中式圆形印章 305
4.5.2 按任意路径排版 309
4.6 打印 316
4.6.1 打印概述 316
4.6.2 打印设置与打印预览 319
4.6.3 处理页边距和多页 324
4.7 本章小结 328
第5章 动画 329
5.1 播放GIF动画 329
5.1.1 动态GIF图像 330
5.1.2 ImageAnimator类 333
5.2 幻灯片 335
5.2.1 淡入与淡出效果 339
5.2.2 溶解效果 341
5.2.3 收缩效果 343
5.2.4 分散效果 346
5.2.5 翻转效果 349
5.2.6 幻灯片控制器 354
5.3 屏幕保护程序 357
5.3.1 屏保概述 358
5.3.2 肥皂泡泡屏保 359
5.4 GDI+游戏 372
5.4.1 场景控制器 373
5.4.2 处理用户输入 381
5.4.3 人工智能 384
5.5 本章小结 393
第6章 分形艺术 394
6.1 分形概述 394
6.1.1 分形和分形几何 395
6.1.2 分形艺术 398
6.1.3 分形模型 401
6.2 绘制分形图像 405
6.2.1 L-System及其应用 406
6.2.2 美妙的复动力系统 411
6.3 本章小结 424
第7章 图像处理 425
7.1 图像处理概述 425
7.1.1 常见图像格式 426
7.1.2 使用GDI+处理图像 430
7.1.3 处理图像Exif信息 435
7.2 图像预处理 444
7.2.1 单像素重新着色 445
7.2.2 直方图与直方图均衡 454
7.2.3 图像变换 462
7.3 邻域运算与卷积 478
7.4 色彩混合模式 483
7.4.1 伪混合模式 484
7.4.2 可交换对称模式 485
7.4.3 非对称模式 491
7.4.4 其他混合模式 498
7.5 特效虑镜 499
7.5.1 浮雕 500
7.5.2 霓虹 502
7.5.3 毛玻璃 504
7.5.4 柔和 506
7.5.5 素描 509
7.6 其他实用技术 511
7.6.1 图层与混合 511
7.6.2 仅操作选区 515
7.6.3 平滑与羽化选区 518
7.6.4 由Region重构GraphicsPath对象 522
7.7 本章小结 525
附录一 GDI+特性速查 526
附录二 .NET精简版提供的GDI+特性 538参考文献 544
序言
GDI+（Graphical Device Interface Plus）伴随着.NET诞生已经有好几年了。随着.NET框架的升级，GDI+的功能也越来越完善。作为Windows的显示子系统，它负责完成Windows窗体和控件的绘制工作，是Windows XP以及Windows 2003等操作系统的用户界面层核心。与它的前身GDI图形系统相比，它引入了2D图形的反锯齿、渐变画刷、基数样条、浮点数坐标，以及Alpha混合支持，并支持多种图像格式等。但是，GDI+没有任何硬件加速，这在性能上造成了一些损失。因此，在某些场合仍然需要采用GDI与GDI+混合编程的模式以获得最优的性能。在编程模式上，GDI+基于非状态的图形对象的用法使程序员可以简单地以面向对象的编程方式去完成每一个绘图任务，而不必花费大量精力去关注各种句柄和设备上下文的状态，这样的好处是显而易见的。
在Windows Vista操作系统中，提供了一种全新的显示子系统——WPF。WPF提供了更加丰富和高效的多媒体应用。但是，GDI+作为当今Windows Forms应用程序的主流图形库仍然会在相当长的一段时间内存在。
GDI+图形库中包含了大量的类型、结构和枚举定义，本书没有逐一介绍每一个类，也没有介绍GDI+图形库中的每一个相关类型。本书立足GDI+的巧妙运用，以创建实用的、耐用的用户界面为例来介绍GDI+图形库的各个部分和功能。本书采用C#语言描述，不是面向.NET的初级学者的，而是面向对.NET框架有一定认识并有一定编程经验的中高级读者。另外，对GDI+和C#感兴趣的在校师生也可以选择阅读本书。
1．本书内容
本书共分为7章，每一章以特定主题为中心、以贯穿始末的程序案例为主线讲解相关知识点。每一章中都给出了大量的源程序清单。其中，大部分源程序都具有极强的实用性，可以直接应用于相关的项目中。出于对篇幅的考虑，在书中介绍相关的知识点时，只会罗列核心的代码清单，完整的源程序可以在随书附带的光盘上找到。全部的源程序都已经在Visual Studio 2005中编译通过，在Visual Studio 2008上通常也可以直接运行。
第1章 介绍GDI+的概念，以及层次结构，并介绍Visual Studio 2005集成开发环境的常用工具和操作，以及C#语言2.0版本所提供的一些新特性。最后介绍GDI+图形库的简单结构，并用一个小例子说明使用GDI+图形库进行绘图的简单过程。
第2章 介绍GDI＋的一般基础性应用——Windows基础控件的制作，包括带有视觉样式和没有视觉样式的基础控件，介绍分层窗口的概念和应用，并给出利用分层窗口实现Alpha混合的异形窗口的简单封装。本章还用了比较大的篇幅来介绍有关颜色空间处理的知识，这可以用于增强GDI+比较弱的颜色支持。本章使用的GDI+技术包括线性渐变画刷、路径渐变画刷、路径、区域、剪辑和失效、自定义光标等。
第3章 介绍更加高级的自定义创意控件的一般流程和方法。与第2章介绍的传统的Windows基础控件相比，本章的内容更加新颖。利用本章介绍的知识，就可以使用GDI+完成高级自定义控件的界面绘制和与用户交互的处理。然后介绍利用.NET框架实现控件对RAD的支持，并简单介绍Visual Studio IDE的开放结构与创建自定义窗体设计器的步骤。最后，以创意控件的制作为目标介绍控件在用户交互时对音效的支持。本章涉及的内容较多，例如GDI+坐标系统、矩阵的仿射变换、双倍缓存等以及相关的一些.NET技术。
第4章 介绍GDI+的另一个重要方面，即对字体、文本和打印的支持。首先介绍与字体相关的一些概念，以及当今常用的字体格式，例如TrueType、OpenType，以及字体渲染技术。然后介绍如何使用GDI+进行文本的格式化输出，包括文字修整和排版。接下来介绍如何绘制特效文本的技术：首先是对文字进行精确的大小测量，以便对文字的绘制坐标进行精确的计算，其次是建立3D的特效文本和将文字沿路径排版的技术。在本章的最后介绍使用GDI+进行格式化打印的技术。
第5章 介绍GDI+在处理动画上的应用。本章将介绍一些可以有效减少使用GDI+处理动画过程中出现的闪烁现象的算法和技术，以及如何突破GDI+性能瓶颈。具体的内容分为播放GIF动态图像、幻灯片效果实现、屏幕保护程序以及游戏。在本章提供的源程序清单中，包含大量实用的、有趣的、新颖的算法和技术。
第6章 介绍分形和分形艺术的概念，以及分形在现实生活中的应用。由于分形的快速发展，以及广阔的应用前景，希望通过本章的介绍能将读者引入探索奇幻莫测的分形世界的艺术殿堂。在内容的安排上，首先简单介绍分形的概念和相关的理论，然后结合GDI+技术实现一个分形图像的生成模型，以及分形世界中最美轮美奂的复动力系统。
第7章 介绍数字图像处理的相关技术。本章中给出了大量的专业级数字图像处理应用。首先简单介绍GDI+提供的数字图像处理功能接口，以及其一般用法，并在此基础上结合Exif规范实现通过GDI+图形库对数码照片Exif信息的读取和写入。接下来介绍各种数字图像处理的原理和一般算法，例如图像的点运算，包括Gamma校正、亮度与对比度调节、色相与饱和度调节、ColorMatrix的使用以及图像的直方图与直方图均衡算法等，并介绍滤波和压缩中使用较多的更加高级的图像变换原理和算法实现，以及图像的邻域运算和卷积操作。然后系统性地介绍图像色彩混合中使用的各种混合模式，这对于多个图像的混合叠加是非常强大而有用的功能。最后介绍图像后期处理中使用的一些特效滤镜的算法原理和实现，并探讨数字图像处理系统中相关的一些基本技术，如用户选区的平滑与羽化等。