GDI+高級編程

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

前言

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

內(nèi)容概要

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

書籍目錄

第1章 .NET Framework 2.0圖形設備接口  1.1  GDI+Vs GDl、DirectX、OpenGL  1.2 Visual Studi0 2005集成開發(fā)環(huán)境與Visual C#  1.3 System.Drawin9.dll程序集  1.4 本章小結第2章 Windows視覺樣式和WinForm基礎控件  2.1 VisualStyles和ControlPaint類    2.1.1 視覺樣式瀏覽器    2.1.2 ControlPaint類    2.1_3 Windows導航欄控件  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 本章小結第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 坐標系統(tǒng)與度量單位    3.2.1 坐標系統(tǒng)    3.2.2 屏幕坐標與工作區(qū)坐標    3.2.3 度量單位    3.2.4 Ruler控件  3.3 矩陣變換    3.3.1 Matrix類    3.3.2 矩陣的仿射變換    3.3.3 全局變換和局部變換……第4章 字體、文本和打印第5章 動畫第6章 分形藝術 第7章 圖像處理附錄

章節(jié)摘錄

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

圖書封面

評論、評分、閱讀與下載


    GDI+高級編程 PDF格式下載


用戶評論 (總計6條)

 
 

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

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

京ICP備13047387號-7