




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第1部分
第9章二維圖形圖像處理9.1GDI+概述9.2繪制基本圖形9.3圖像處理9.1GDI+概述
GDI+:GraphicsDeviceInterface(圖形設(shè)備接口),它提供了高級圖形圖像處理功能在C#中,通過一套部署為托管代碼的類來展現(xiàn)提供的圖形圖像處理功能,這套類被稱為GDI+的托管類。利用GDI+的托管類可以輕松實(shí)現(xiàn)顏色漸變、透明處理、紋理處理、拉伸和縮放等多種高級功能。GDI+主要提供了三類服務(wù):1.二維矢量圖形處理2.二維圖像處理3.文字顯示在C#中,所有圖形圖像處理功能都包含在以下名稱空間下:1.System.Drawing名稱空間
提供了對GDI+基本圖形功能的訪問,主要有Graphics類Bitmap類、從Brush類繼承的類、Font類、Icon類、Image類、Pen類、Color類等。2.System.Drawing.Drawing2D名稱空間
提供了高級的二維和矢量圖形處理功能。主要有:梯度型畫刷、Matrix類(用于定義幾何變換)和GraphicsPath類等。3.System.Drawing.Imaging名稱空間
提供了高級
圖像處理功能。
4.System.Drawing.Text名稱空間提供了高級
字體和文本排版功能
9.1GDI+概述(續(xù))2.通過當(dāng)前窗體的CreateGraphics方法,把當(dāng)前窗體的畫筆、字體、顏色作為默認(rèn)值,獲取對Graphics對象的引用。例如:
Graphicsg=this.CreateGraphics();……3.從繼承自圖像的任何對象創(chuàng)建Graphics對象,例如:BitmapmyBitmap=newBitmap(@"C:\mytest1\Pics\myPic.bmp");Graphicsg=Graphics.FromImage(myBitmap);9.1.2Graphics類(續(xù))9.1.3顏色
顏色封裝在System.Drawing.Color結(jié)構(gòu)中。人眼可以分辨的任何顏色都是由一定的紅、綠、藍(lán)三色光組成。任何一種顏色都可以有四個分量:R:紅色,取值范圍0~255,0表示沒有紅色成分,255為飽和紅色;G:綠色,取值范圍0~255,0表示沒有綠色成分,255為飽和綠色;B:藍(lán)色,取值范圍0~255,0表示沒有藍(lán)色成分,255為飽和藍(lán)色;A:Alpha值,即透明度,取值范圍0~255,0表示完全透明,255表示完全不透明。
在代碼中聲明顏色的方式常用有兩種:
1.調(diào)用靜態(tài)方法Color.FromArgb()指定任意顏色,這種方法有兩種常用形式。第一種形式為直接指定三種顏色,方法原型為:PublicstaticColorFromArgb(intred,intgreen,intblue);三個參數(shù)分別表示R、G、B三色,Alpha值使用默認(rèn)值255,即完全不透明。例如:Colorred=Color.FromArgb(255,0,0);第二種形式為四個參數(shù),方法原型為:PublicstaticColorFromArgb(intalpha,intred,intgreen,intblue);四個參數(shù)分別表示透明度、R、G、B三色值。9.1.3顏色(續(xù))9.1.4畫筆和畫刷
畫筆(Pen)
畫筆可用于繪制繪制具有指定寬度和樣式的直線、曲線或輪廓形狀。下面的示例說明如何創(chuàng)建一支基本的藍(lán)色畫筆:PenmyPen=newPen(Color.Blue);PenmyPen=newPen(Color.Blue,10.5f);也可以從畫刷對象創(chuàng)建畫筆對象,例如:SolidBrushmyBrush=newSolidBrush(Color.Red);PenmyPen=newPen(myBrush);PenmyPen=newPen(myBrush,5);【例9-2】畫筆(Pen)的用法。9.1.4畫筆和畫刷(續(xù))畫刷(Brush)
畫刷是可以與Graphics對象一起使用來創(chuàng)建實(shí)心形狀和呈現(xiàn)文本的對象??梢杂脕硖畛涓鞣N圖形形狀,如矩形、橢圓、餅型圖和多邊形等。下表列出了幾種不同類型的畫刷。類說明SolidBrush用純色填充圖形TextureBrush用基于光柵的圖像(位圖、JPG等)填充圖形LinearBradientBrush用顏色漸變填充圖形PathGradientBrush用漸變效果填充圖形HatchBrush用各種圖案填充圖形1)使用SolidBrush類定義單色畫刷
SolidBrush類用于定義單色畫刷。該類可以填充圖形,比如矩形、橢圓、多邊形和路徑?!纠?-3】單色畫刷演示示例。9.1.4畫筆和畫刷(續(xù))運(yùn)行結(jié)果如右圖所示:3)使用TextureBrush類填充復(fù)雜圖像
TextureBrush類使用圖像作為填充的樣式,它可以使用例如.bmp、.jpg、.png等格式的圖像。初始化一個新的TextureBrush對象需要指定填充的圖像。
【例9-5】創(chuàng)建TextureBrush示例。運(yùn)行效果:9.1.4畫筆和畫刷(續(xù))4)使用LinearGradientBrush類定義線性漸變LinearGradientBrush對象用顏色線性漸變填充圖形。提供了以下三種構(gòu)造函數(shù):(1)提供兩個點(diǎn)和兩種顏色。PublicLinearGradientBrush(Pointpoint1,Pointpoint2,Colorcolor1,Colorcolor2)(2)提供一個矩形和一個角度。PublicLinearGradientBrush(Rectanglerect,Colorcolor1,Colorcolor2,floatangle)(3)指定漸變的模式。PublicLinearGradientBrush(Rectanglerect,Colorcolor1,Colorcolor2,LinearGradientModelinearGradientMode)
9.1.4畫筆和畫刷(續(xù))【例9-6】使用點(diǎn)描述線性漸變。運(yùn)行效果:【例9-7】使用矩形描述線性漸變。運(yùn)行效果:9.1.4畫筆和畫刷(續(xù))9.2繪制基本圖形
所有繪制圖形的方法都位于Graphics中。9.2.1直線DrawLine方法:繪制一條直線,常用形式:1)繪制一條連接指定兩個Point結(jié)構(gòu)的線。publicvoidDrawLine(Penpen,Pointpt1,Pointpt2)其中,Pen對象確定線條的顏色、寬度和樣式;Point結(jié)構(gòu)確定起點(diǎn)和終點(diǎn)。2)繪制一條由坐標(biāo)對指定的兩個點(diǎn)的線。publicvoidDrawLine(Penpen,intx1,inty1,intx2,inty2)其中,Pen對象確定線條的顏色、寬度和樣式;x1,y1為起點(diǎn)坐標(biāo),x2,y2為終點(diǎn)坐標(biāo)。
9.2.1直線(續(xù))DrawLines方法:繪制一系列點(diǎn)組成的線。常用形式:publicvoidDrawLines(Penpen,Point[]points)其中,Pen對象確定線條的顏色、寬度和樣式;數(shù)組中的第一個點(diǎn)指定起始點(diǎn),后面的每個點(diǎn)都以相臨的前一個點(diǎn)為起始點(diǎn)組成線段?!纠?-9】使用DrawLine方法和DrawLines方法繪制直線。矩形分為輪廓和封閉區(qū)域兩部分DrawRectangle(或DrawRectangles)用于繪制矩形的輪廓。FillRectangle(或FillRectangles)用于填充矩形的封閉區(qū)域?!纠?-10】繪制矩形方法示例。9.2.2矩形9.2.4曲線1.DrawCurve方法
用光滑的曲線把給定的點(diǎn)連接起來,常用形式有:1)publicvoidDrawCurve(Penpen,Point[]points)其中,Point結(jié)構(gòu)類型的數(shù)組中指明各節(jié)點(diǎn),默認(rèn)彎曲強(qiáng)度為0.5。注意,數(shù)組中至少要有3個元素。2)publicvoidDrawCurve(Penpen,Point[]points,floattension)其中,tension指定彎曲強(qiáng)度,該值范圍為0.0f~1.0f,超出此范圍會產(chǎn)生異常。當(dāng)彎曲強(qiáng)度為零時,就是直線。9.2.4曲線(續(xù))2.DrawClosedCurve方法通過連接數(shù)組中節(jié)點(diǎn)畫一個平滑的曲線,此方法會自動把首尾節(jié)點(diǎn)連接起來構(gòu)成封閉曲線。注意數(shù)組中的節(jié)點(diǎn)至少要有3個點(diǎn)組成,默認(rèn)彎曲強(qiáng)度為0.5。1)publicvoidDrawClosedCurve(Penpen,Point[]points)其中,Point結(jié)構(gòu)類型的數(shù)組中指明各節(jié)點(diǎn)。2)publicvoidDrawClosedCurve(Penpen,Point[]points,floattensionFillModefillmode)其中,fillmode指明曲線封閉區(qū)域內(nèi)以何種方式填充。9.2.4曲線(續(xù))3.貝塞爾曲線每段貝塞爾曲線由4個點(diǎn)組成,兩個端點(diǎn)(p1為起點(diǎn),p2為終點(diǎn))和兩個控制點(diǎn)(c1和c2)。曲線不經(jīng)過控制點(diǎn),但是控制點(diǎn)如同一個磁體吸引曲線,影響并引導(dǎo)曲線向某個方向拉伸。9.2.4曲線(續(xù))【例9-12】繪制曲線示例。9.2.5橢圓1.DrawEllipse方法1)給定橢圓左上角坐標(biāo)和橢圓的外接矩形的寬度和高度publicvoidDrawEllipse(Penpen,intx,inty,intwidth,intheight);其中,pen為Pen對象,x,y為橢圓左上角的坐標(biāo),width定義橢圓外接矩形的寬度,height定義橢圓外接矩形的高度。2)給定橢圓外接矩形的結(jié)構(gòu)publicvoidDrawEllipse(Penpen,Rectanglerect);其中,rect為Rectangle結(jié)構(gòu),用于確定橢圓的邊界。9.2.6扇形(續(xù))1.DrawPie方法1)publicvoidDrawpie(Penpen,intx,inty,intwidth,intheight,intstartAngle,intsweepAngle);其中,pen為Pen對象,x,y為橢圓左上角的坐標(biāo),width定義扇形外接矩形的寬度,height定義扇形外接矩形的高度,startAngle為起始角度(以度為單位),sweepAngle為延伸角度。2)publicvoidDrawPie(Penpen,Rectanglerect,floatstartAngle,floatsweepAngle);其中,rect為Rectangle結(jié)構(gòu),用于確定扇形的外接矩形。9.2.6扇形(續(xù))2.FillPie方法1)publicvoidFillPie(Brushbrush,intx,inty,intwidth,intheight,intstartAngle,intsweepAngl
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025湖北荊州市監(jiān)利市消防救援大隊(duì)招聘政府專職消防員15人筆試模擬試題及答案解析
- 資料期中考試講話稿
- 軟件銷售管理述職報(bào)告
- 遠(yuǎn)洋運(yùn)輸相關(guān)知識
- 人教遼寧 九年級 下冊 語文 第一單元《 海燕》習(xí)題課 課件
- 計(jì)算機(jī)基礎(chǔ)實(shí)踐與創(chuàng)新課件 第2章 計(jì)算機(jī)系統(tǒng)的基本組成和基 本工作原理
- 人教陜西 九年級 下冊 語文 第三單元《 送東陽馬生序》習(xí)題課課件
- 高中語文必修5陳情表 同步練習(xí)課內(nèi)四基達(dá)標(biāo)
- 三年級數(shù)學(xué)北師大版上冊第六單元《6.1螞蟻?zhàn)霾佟方虒W(xué)設(shè)計(jì)教案1
- 加盟 續(xù)簽合同范本
- 2025年陜西工商職業(yè)學(xué)院單招職業(yè)技能測試題庫學(xué)生專用
- 高中班會課:趣味知識競賽課件
- 特種設(shè)備噸叉車設(shè)計(jì)計(jì)算書
- (精選word)洪恩識字-生字卡片1-200
- XX市三級公立綜合醫(yī)院績效考核指標(biāo)評分細(xì)則
- 監(jiān)理平行檢查記錄表(最新全套)電子版本
- 押金收據(jù)條(通用版)
- 500kV變電站工程主變基礎(chǔ)及防火墻施工方案
- 屈原《國殤》教學(xué)課件
- 戰(zhàn)略地圖模版(共2頁)
評論
0/150
提交評論