基本信息
作者:楊建昌
出版社:清華大學出版社
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
序言
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的使用以及圖像的直方圖與直方圖均衡算法等,並介紹濾波和壓縮中使用較多的更加高級的圖像變換原理和算法實現,以及圖像的鄰域運算和卷積操作。然後系統性地介紹圖像色彩混合中使用的各種混合模式,這對於多個圖像的混合疊加是非常強大而有用的功能。最後介紹圖像後期處理中使用的一些特效濾鏡的算法原理和實現,並探討數字圖像處理系統中相關的一些基本技術,如用戶選區的平滑與羽化等。