?? 用visual c++.net進(jìn)行g(shù)di+編.txt
字號(hào):
用Visual C++.NET進(jìn)行GDI+編程
--------------------------------------------------------------------------------
第八軍團(tuán) 時(shí)間:2004-2-22 13:10:42
GDI+接口是Microsoft Whistler操作系統(tǒng)中的一部分,它是GDI的一個(gè)新版本,不僅在GDI基礎(chǔ)上添加許多新特性而且對(duì)原有的GDI功能進(jìn)行優(yōu)化。在為開發(fā)人員提供的二維矢量圖形、文本、圖像處理、區(qū)域、路徑以及圖形數(shù)據(jù)矩陣等方面構(gòu)造了一系列相關(guān)的類,如Bitmap(位圖類)、Brush(畫刷類)、Color(顏色類)、Font(字體類)、Graphics(圖形類)、Image(圖像類)、Pen(畫筆類)和Region(區(qū)域類)等。其中,圖形類Graphics是GDI+接口中的一個(gè)核心類,許多繪圖操作都可用它來完成。
我們首先介紹一下GDI+的新特性以及其編程方式的改變,然后介紹用Visual C++.NET在基于對(duì)話框和單文檔/多文檔等應(yīng)用程序中使用GDI+的一般方法。
GDI+新特性
GDI+與GDI相比,增加了下列新的特性:
1、漸變畫刷
以往GDI實(shí)現(xiàn)顏色漸變區(qū)域的方法是通過使用不同顏色的線條來填充一個(gè)裁剪區(qū)域而達(dá)到的。現(xiàn)在GDI+拓展了GDI功能,提供線型漸變和路徑漸變畫刷來填充一個(gè)圖形、路徑和區(qū)域,甚至也可用來繪制直線、曲線等。這里的路徑可以視為由各種繪圖函數(shù)產(chǎn)生的軌跡。
2、樣條曲線
對(duì)于曲線而言,最具實(shí)際意義的莫過于樣條曲線。樣條曲線是在生產(chǎn)實(shí)踐的基礎(chǔ)上產(chǎn)生和發(fā)展起來的。模線間的設(shè)計(jì)人員在繪制模線時(shí),先按給定的數(shù)據(jù)將型值點(diǎn)準(zhǔn)確地"點(diǎn)"到圖板上。然后,采用一種稱為"樣條"的工具(一根富有彈性的有機(jī)玻璃條或木條),用壓鐵強(qiáng)迫它通過這些型值點(diǎn),再適當(dāng)調(diào)整這些壓鐵,讓樣條的形態(tài)發(fā)生變化,直至取得合適的形狀,才沿著樣條畫出所需的曲線。如果我們把樣條看成彈性細(xì)梁,那么壓鐵就可看成作用在這梁上的某些點(diǎn)上的集中力。GDI+的Graphics:: DrawCurve函數(shù)中就有一個(gè)這樣的參數(shù)用來調(diào)整集中力的大小。除了樣條曲線外,GDI+還支持原來GDI中的Bezier曲線。
3、持久的路徑對(duì)象
我們知道,在GDI中,路徑是隸屬于一個(gè)設(shè)備環(huán)境(上下文),也就是說一旦設(shè)備環(huán)境指針超過它的有效期,路徑也會(huì)被刪除。而GDI+是使用Graphics對(duì)象來進(jìn)行繪圖操作,并將路徑操作從Graphics對(duì)象分離出來,提供一個(gè)GraphicsPath類供用戶使用。這就是說,我們不必?fù)?dān)心路徑對(duì)象會(huì)受到Graphics對(duì)象操作的影響,從而可以使用同一個(gè)路徑對(duì)象進(jìn)行多次的路徑繪制操作。
4、矩陣和矩陣變換
在圖形處理過程中常需要對(duì)其幾何信息進(jìn)行變換以便產(chǎn)生復(fù)雜的新圖形,矩陣是這種圖形幾何變換最常用的方法。為了滿足人們對(duì)圖形變換的需求,GDI+提供了功能強(qiáng)大的Matrix類來實(shí)現(xiàn)矩陣的旋轉(zhuǎn)、錯(cuò)切、平移、比例等變換操作,并且GDI+還支持Graphics圖形和區(qū)域(Region)的矩陣變換。
5、Alpha混色
在圖像處理中,Alpha用來衡量一個(gè)像素或圖像的透明度。在非壓縮的32位RGB圖像中,每個(gè)像素是由四個(gè)部分組成:一個(gè)Alpha通道和三個(gè)顏色分量(R、G和B)。當(dāng)Alpha值為0時(shí),該像素是完全透明的,而當(dāng)Alpha值為255時(shí),則該像素是完全不透明。
Alpha混色是將源像素和背景像素的顏色進(jìn)行混合,最終顯示的顏色取決于其RGB顏色分量和Alpha值。它們之間的關(guān)系可用下列公式來表示:
顯示顏色 = 源像素顏色 X alpha / 255 + 背景顏色 X (255 - alpha) / 255
GDI+的Color類定義了ARGB顏色數(shù)據(jù)類型,從而可以通過調(diào)整Alpha值來改變線條、圖像等與背景色混合后的實(shí)際效果。
除了上述新特性外,GDI+還將支持重新著色、色彩修正、消除走樣、元數(shù)據(jù)以及Graphics容器等特性。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -