GDI+高級編程

出版時(shí)間:2010-1  出版社:清華大學(xué)出版社  作者:楊建昌  頁數(shù):453  

前言

  GDI+(Graphical Device Interface Plus)伴隨著.NET誕生已經(jīng)有好幾年了。隨著.NET框架的升級,GDI+的功能也越來越完善。作為Windows的顯示子系統(tǒng),它負(fù)責(zé)完成Windows窗體和控件的繪制工作,是Windows XP以及Windows 2003等操作系統(tǒng)的用戶界面層核心。與它的前身GDI圖形系統(tǒng)相比,它引入了2D圖形的反鋸齒、漸變畫刷、基數(shù)樣條、浮點(diǎn)數(shù)坐標(biāo),以及Alpha混合支持,并支持多種圖像格式等。但是,GDI+沒有任何硬件加速,這在性能上造成了一些損失。因此,在某些場合仍然需要采用GDI與GDI+混合編程的模式以獲得最優(yōu)的性能。在編程模式上,GDI+基于非狀態(tài)的圖形對象的用法使程序員可以簡單地以面向?qū)ο蟮木幊谭绞饺ネ瓿擅恳粋€(gè)繪圖任務(wù),而不必花費(fèi)大量精力去關(guān)注各種句柄和設(shè)備上下文的狀態(tài),這樣的好處是顯而易見的?! ≡赪indows Vista操作系統(tǒng)中,提供了一種全新的顯示子系統(tǒng)——WPF。WPF提供了更加豐富和高效的多媒體應(yīng)用。但是,GDI+作為當(dāng)今Windows Forms應(yīng)用程序的主流圖形庫仍然會(huì)在相當(dāng)長的一段時(shí)間內(nèi)存在?! DI+圖形庫中包含了大量的類型、結(jié)構(gòu)和枚舉定義,本書沒有逐一介紹每一個(gè)類,也沒有介紹GDI+圖形庫中的每一個(gè)相關(guān)類型。本書立足GDI+的巧妙運(yùn)用,以創(chuàng)建實(shí)用的、耐用的用戶界面為例來介紹GDI+圖形庫的各個(gè)部分和功能。本書采用C#語言描述,不是面向.NET的初級學(xué)者的,而是面向?qū)?NET框架有一定認(rèn)識并有一定編程經(jīng)驗(yàn)的中高級讀者。另外,對GDI+和C#感興趣的在校師生也可以選擇閱讀本書?! ?.本書內(nèi)容  本書共分為7章,每一章以特定主題為中心、以貫穿始末的程序案例為主線講解相關(guān)知識點(diǎn)。每一章中都給出了大量的源程序清單。其中,大部分源程序都具有極強(qiáng)的實(shí)用性,可以直接應(yīng)用于相關(guān)的項(xiàng)目中。出于對篇幅的考慮,在書中介紹相關(guān)的知識點(diǎn)時(shí),只會(huì)羅列核心的代碼清單,完整的源程序可以在隨書附帶的光盤上找到。全部的源程序都已經(jīng)在Visual Studio 2005中編譯通過,在Visual Studio 2008上通常也可以直接運(yùn)行?! 〉?章 介紹GDI+的概念,以及層次結(jié)構(gòu),并介紹Visual Studio 2005集成開發(fā)環(huán)境的常用工具和操作,以及C#語言2.0版本所提供的一些新特性。最后介紹GDI+圖形庫的簡單結(jié)構(gòu),并用一個(gè)小例子說明使用GDI+圖形庫進(jìn)行繪圖的簡單過程?! 〉?章 介紹GDI+的一般基礎(chǔ)性應(yīng)用——Windows基礎(chǔ)控件的制作,包括帶有視覺樣式和沒有視覺樣式的基礎(chǔ)控件,介紹分層窗口的概念和應(yīng)用,并給出利用分層窗口實(shí)現(xiàn)Alpha混合的異形窗口的簡單封裝。本章還用了比較大的篇幅來介紹有關(guān)顏色空間處理的知識,這可以用于增強(qiáng)GDI+比較弱的顏色支持。本章使用的GDI+技術(shù)包括線性漸變畫刷、路徑漸變畫刷、路徑、區(qū)域、剪輯和失效、自定義光標(biāo)等?! 〉?章 介紹更加高級的自定義創(chuàng)意控件的一般流程和方法。與第2章介紹的傳統(tǒng)的Windows基礎(chǔ)控件相比,本章的內(nèi)容更加新穎。利用本章介紹的知識,就可以使用GDI+完成高級自定義控件的界面繪制和與用戶交互的處理。然后介紹利用.NET框架實(shí)現(xiàn)控件對RAD的支持,并簡單介紹Visual Studio IDE的開放結(jié)構(gòu)與創(chuàng)建自定義窗體設(shè)計(jì)器的步驟。最后,以創(chuàng)意控件的制作為目標(biāo)介紹控件在用戶交互時(shí)對音效的支持。本章涉及的內(nèi)容較多,例如GDI+坐標(biāo)系統(tǒng)、矩陣的仿射變換、雙倍緩存等以及相關(guān)的一些.NET技術(shù)。  第4章 介紹GDI+的另一個(gè)重要方面,即對字體、文本和打印的支持。首先介紹與字體相關(guān)的一些概念,以及當(dāng)今常用的字體格式,例如TrueType、OpenType,以及字體渲染技術(shù)。然后介紹如何使用GDI+進(jìn)行文本的格式化輸出,包括文字修整和排版。接下來介紹如何繪制特效文本的技術(shù):首先是對文字進(jìn)行精確的大小測量,以便對文字的繪制坐標(biāo)進(jìn)行精確的計(jì)算,其次是建立3D的特效文本和將文字沿路徑排版的技術(shù)。在本章的最后介紹使用GDI+進(jìn)行格式化打印的技術(shù)?! 〉?章 介紹GDI+在處理動(dòng)畫上的應(yīng)用。本章將介紹一些可以有效減少使用GDI+處理動(dòng)畫過程中出現(xiàn)的閃爍現(xiàn)象的算法和技術(shù),以及如何突破GDI+性能瓶頸。具體的內(nèi)容分為播放GIF動(dòng)態(tài)圖像、幻燈片效果實(shí)現(xiàn)、屏幕保護(hù)程序以及游戲。在本章提供的源程序清單中,包含大量實(shí)用的、有趣的、新穎的算法和技術(shù)。  第6章 介紹分形和分形藝術(shù)的概念,以及分形在現(xiàn)實(shí)生活中的應(yīng)用。由于分形的快速發(fā)展,以及廣闊的應(yīng)用前景,希望通過本章的介紹能將讀者引入探索奇幻莫測的分形世界的藝術(shù)殿堂。在內(nèi)容的安排上,首先簡單介紹分形的概念和相關(guān)的理論,然后結(jié)合GDI+技術(shù)實(shí)現(xiàn)一個(gè)分形圖像的生成模型,以及分形世界中最美輪美奐的復(fù)動(dòng)力系統(tǒng)。  第7章 介紹數(shù)字圖像處理的相關(guān)技術(shù)。本章中給出了大量的專業(yè)級數(shù)字圖像處理應(yīng)用。首先簡單介紹GDI+提供的數(shù)字圖像處理功能接口,以及其一般用法,并在此基礎(chǔ)上結(jié)合Exif規(guī)范實(shí)現(xiàn)通過GDI+圖形庫對數(shù)碼照片Exif信息的讀取和寫入。接下來介紹各種數(shù)字圖像處理的原理和一般算法,例如圖像的點(diǎn)運(yùn)算,包括Gamma校正、亮度與對比度調(diào)節(jié)、色相與飽和度調(diào)節(jié)、ColorMatrix的使用以及圖像的直方圖與直方圖均衡算法等,并介紹濾波和壓縮中使用較多的更加高級的圖像變換原理和算法實(shí)現(xiàn),以及圖像的鄰域運(yùn)算和卷積操作。然后系統(tǒng)性地介紹圖像色彩混合中使用的各種混合模式,這對于多個(gè)圖像的混合疊加是非常強(qiáng)大而有用的功能。最后介紹圖像后期處理中使用的一些特效濾鏡的算法原理和實(shí)現(xiàn),并探討數(shù)字圖像處理系統(tǒng)中相關(guān)的一些基本技術(shù),如用戶選區(qū)的平滑與羽化等。

內(nèi)容概要

本書立足GDI+的巧妙運(yùn)用,以制造實(shí)用的用戶界面為目標(biāo)來介紹GDI+圖形庫的各個(gè)部分和功能。本書共分為7章,每一章介紹了特定主題內(nèi)容。全書主要內(nèi)容包括GDI+的概念,以及層次結(jié)構(gòu),GDI+的一般基礎(chǔ)性能應(yīng)用——windows基礎(chǔ)控制的制作,包括帶有視覺樣式和沒有視覺樣式的基礎(chǔ)控件;高級自定義創(chuàng)意控件的一般流程和方法;GDI+對字體和文字的支持;GDI+在處理動(dòng)畫上的應(yīng)用;分形和分形藝術(shù)的概念,以及分形在現(xiàn)實(shí)生活中的應(yīng)用;數(shù)字圖像處理的相關(guān)技術(shù)。    本書采用C#語言描述,面向?qū)Γ甆ET框架有一定認(rèn)識并有一定編程經(jīng)驗(yàn)的中高級讀書。本書也可以作為對GDI+和C#感興趣的在校師生的參考讀物。

書籍目錄

第1章 .NET Framework 2.0圖形設(shè)備接口  1.1  GDI+Vs GDl、DirectX、OpenGL  1.2 Visual Studi0 2005集成開發(fā)環(huán)境與Visual C#  1.3 System.Drawin9.dll程序集  1.4 本章小結(jié)第2章 Windows視覺樣式和WinForm基礎(chǔ)控件  2.1 VisualStyles和ControlPaint類    2.1.1 視覺樣式瀏覽器    2.1.2 ControlPaint類    2.1_3 Windows導(dǎo)航欄控件  2.2 分層窗口    2.2.1 分層窗口的概念    2.2.2 CreateParams類    2.2.3 使用分層窗口  2.3 顏色空間和拾色器    2.3.1 顏色空間    2.3.2 色彩轉(zhuǎn)換    2.3.3 拾色器  2.4 本章小結(jié)第3章 GDI+與.NET創(chuàng)意控件  3.1 不規(guī)則形狀    3.1.1 Circle類    3.1.2 Circle類型轉(zhuǎn)換器    3.1.3 高級衍生圖形    3.1.4 WaitingCircle控件  3.2 坐標(biāo)系統(tǒng)與度量單位    3.2.1 坐標(biāo)系統(tǒng)    3.2.2 屏幕坐標(biāo)與工作區(qū)坐標(biāo)    3.2.3 度量單位    3.2.4 Ruler控件  3.3 矩陣變換    3.3.1 Matrix類    3.3.2 矩陣的仿射變換    3.3.3 全局變換和局部變換……第4章 字體、文本和打印第5章 動(dòng)畫第6章 分形藝術(shù) 第7章 圖像處理附錄

章節(jié)摘錄

  OpenGL(Open Graphics Library)是由SGI(Silicon Graphics Inc.)公司開發(fā)的一套開放圖形庫。它是一套跨平臺(tái)、不依賴于編程語言的2D/3D圖像編程接口,應(yīng)用在包括CAD、GIS、媒體娛樂、游戲開發(fā)、工程科學(xué)及虛擬現(xiàn)實(shí)等行業(yè)領(lǐng)域中。與DirectX相比,OpenGL只是一個(gè)圖形函數(shù)庫,并不包含音視頻處理、輸入設(shè)備管理、網(wǎng)絡(luò)連接等支持API。OpenGL以強(qiáng)大的功能、良好的移植性、高效的圖像處理方法以及硬件擴(kuò)展等特性在圖形工作站等專業(yè)高端圖形處理領(lǐng)域得到廣泛應(yīng)用而成為事實(shí)上的行業(yè)標(biāo)準(zhǔn)。由于Microsoft為了使DirectX在游戲開發(fā)市場競爭中更具有優(yōu)勢,于是采取了一系列措施來限制OpenGL的發(fā)展,例如拒絕在操作系統(tǒng)中發(fā)布支持OpenGL的驅(qū)動(dòng)程序等。OpenGL的發(fā)展一直處于一種近乎停滯的狀況,而DirectX的發(fā)展則是蒸蒸日上,在PC領(lǐng)域成了完全的霸主。雖然如此,OpenGL在高端圖形處理領(lǐng)域仍舊是豪氣十足,不可取代?! irectX與OpenGL雖然功能強(qiáng)大,但是其復(fù)雜程度是GDI+遠(yuǎn)遠(yuǎn)不能比擬的。DirectX與OpenGL屬于重量級的圖形庫,而GDI+只是輕量級的圖形庫,但是卻提供了友好簡單的編程界面,易學(xué)易用。DirectX與OpenGL面向三維圖像以及音視頻等多媒體處理,直接面向顯卡編程,比較適合大型多媒體應(yīng)用程序,比如游戲、三維建模工具等的開發(fā),在二維圖像處理方面沒有提供繪圖接口和函數(shù),只有位圖操作。GDI+則集成了眾多圖形相關(guān)的類,并且提供了一組相當(dāng)豐富的繪圖函數(shù),在Windows窗口以及桌面編程領(lǐng)域,可以完全勝任二維圖元的繪制操作,也是Windows操作系統(tǒng)中窗口編程的絕對主力?! irectX、OpenGL以及GDI+等圖形庫都有各自最適合的應(yīng)用領(lǐng)域。由于GDI+更注重系統(tǒng)的簡潔性和兼容性,從而更易學(xué)易用。如果應(yīng)用程序或游戲中不要求太多的3D效果,GDI+同樣可以非常適合該類應(yīng)用程序和很多類型游戲的開發(fā)。在常規(guī)的Windows窗口應(yīng)用程序中,使用GDI+是最好的選擇。結(jié)合程序員對GDI+圖形庫的擴(kuò)展,GDI+可以在多個(gè)應(yīng)用領(lǐng)域進(jìn)行多種圖形圖像、地理信息、包裝裝潢、廣告設(shè)計(jì),以及游戲等應(yīng)用的開發(fā)。

圖書封面

評論、評分、閱讀與下載


    GDI+高級編程 PDF格式下載


用戶評論 (總計(jì)6條)

 
 

  •   很不錯(cuò)的教材啊,可以看看
  •   還行吧,單位上學(xué)習(xí)用的
  •   做做參考,偶爾翻翻
  •   不錯(cuò),入門可以用一下。
  •   沒有光盤,為什么? 這書是正版的嗎? 怎么首頁的出版社標(biāo)簽很模糊,也沒有防偽技術(shù)?
  •   剛到手的書,看來希望越大,失望越大啊!
    沖著書名中的“高級”兩字而來,卻發(fā)現(xiàn)書中到處都是入門的話題,什么“打開。。新建。。然后。。下一步。。”,甚至介紹圓的基本知識,圓的方程(初中生啊我),C#2.0新特性(到處都是C#書,你只管寫GDI+就是了),書中代碼比例過大,建議書名修改為“GDI+入門教程”。往往一章節(jié)就是圍繞一個(gè)小列子,中國特色啊,還搞了500多頁那么厚,純粹想賺稿費(fèi)。
    這也讓我想到,為什么國外的書,特別是圖靈的,雖薄薄一本,雖價(jià)格很貴,但里面都是精華,不像我們,嚴(yán)重失望!
    下載本書源碼看看就可以了,書就不推薦買了。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7