Visual Basic.NET程序設(shè)計(jì)課件第10章_第1頁(yè)
Visual Basic.NET程序設(shè)計(jì)課件第10章_第2頁(yè)
Visual Basic.NET程序設(shè)計(jì)課件第10章_第3頁(yè)
Visual Basic.NET程序設(shè)計(jì)課件第10章_第4頁(yè)
Visual Basic.NET程序設(shè)計(jì)課件第10章_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第10章圖形圖像編程教學(xué)目標(biāo)了解.Net框架提供的的圖形類庫(kù),掌握基本圖形繪制方法,初步了解VisualBasic.NET語(yǔ)言處理位圖圖像和保存圖像功能。

目錄10.1圖形圖像繪制基礎(chǔ)知識(shí)10.2繪制基本圖形10.3創(chuàng)建畫刷填充圖形10.4圖像處理10.5文字處理10.6綜合應(yīng)用實(shí)驗(yàn)十圖形圖像的繪制10.1圖形圖像繪制基礎(chǔ)知識(shí)10.1.1GDI+概述10.1.2Graphics類10.1.3坐標(biāo)10.1.4Paint事件10.1.1GDI+概述GDI是GraphicsDeviceInterface的縮寫,含義是圖形設(shè)備接口,它的主要任務(wù)是負(fù)責(zé)系統(tǒng)與繪圖程序之間的信息交換,處理所有Windows程序的圖形輸出。GDI+技術(shù)是由GDI技術(shù)“進(jìn)化”而來(lái),出于兼容性考慮,WindowsXP仍然支持以前版本的GDI,但是在開(kāi)發(fā)新應(yīng)用程序的時(shí)候,開(kāi)發(fā)人員為了滿足圖形輸出需要應(yīng)該使用GDI+,因?yàn)镚DI+對(duì)以前的Windows版本中GDI進(jìn)行了優(yōu)化,并添加了許多新的功能。GDI+的中介作用10.1.2Graphics類要進(jìn)行圖形處理,必須首先創(chuàng)建Graphics對(duì)象,然后才能利用它進(jìn)行各種畫圖操作。創(chuàng)建Graphics對(duì)象的形式有:(1)在窗體或控件的Paint事件中直接引用Graphics對(duì)象GDI+的中介作用(2)從當(dāng)前窗體或控件獲取對(duì)Graphics對(duì)象的引用(3)從繼承自圖像的任何對(duì)象創(chuàng)建Graphics對(duì)象。10.1.3坐標(biāo)坐標(biāo)系以像素為單位,像素指的是屏幕上的亮點(diǎn)。每個(gè)像素都有一個(gè)坐標(biāo)與之對(duì)應(yīng),左上角的坐標(biāo)為(0,0),水平向右為正,垂直向下為正。一般情況下以(x,y)代表屏幕上某個(gè)像素的坐標(biāo)點(diǎn),其中水平以X坐標(biāo)值表示,垂直以Y坐標(biāo)值表示。該點(diǎn)的坐標(biāo)(x,y)是(4,3)10.1.4Paint事件在屏幕上進(jìn)行繪制的操作稱為“繪畫”。窗體和控件都有一個(gè)Paint事件。每當(dāng)需要重新繪制窗體和控件(例如,首次顯示窗體或窗體由另一個(gè)窗口覆蓋)時(shí)就會(huì)發(fā)生該事件。用戶所編寫的用于顯示圖形的任何代碼通常都包含在Paint事件處理程序中。10.2繪制基本圖形10.2.1創(chuàng)建畫筆10.2.2繪制直線10.2.3繪制矩形10.2.4繪制多邊形10.2.5繪制曲線10.2.6繪制橢圓和弧線10.2.1創(chuàng)建畫筆在GDI+中,可使用畫筆(Pen)對(duì)象于繪制具有指定寬度和樣式的線條、曲線以及勾勒形狀輪廓。畫筆可用于繪制具有指定寬度和樣式的直線、曲線或輪廓形狀。畫筆(Pen)類的構(gòu)造函數(shù)有四種,使用方法如下。(1)創(chuàng)建某一顏色的Pen對(duì)象:PublicSubNew(ByValcolorAsColor)(2)創(chuàng)建某一刷子樣式的Pen對(duì)象:PublicSubNew(ByValbrushAsBrush)(3)創(chuàng)建某—刷子樣式并具有相應(yīng)寬度的Pen對(duì)象:PublicSubNew(ByValbrushAsBrush,ByValwidthAsSingle)(4)創(chuàng)建某一顏色和相應(yīng)寬度的Pen對(duì)象:PublicSubNew(ByValcolorAsColor,ByValwidthAsSingle)【例10.1】畫筆的用法演示示例。10.2.2繪制直線有兩種繪制直線的方法:DrawLine()方法和DrawLines()方法。DrawLine()用于繪制一條直線,DrawLines()用于繪制多條直線。常用形式有:[格式1]:OverloadsPublicSubDrawLine(ByValpenAsPen,ByValx1AsInteger,ByValy1AsInteger,ByValx2AsInteger,ByValy2AsInteger)其中x1,y1為起點(diǎn)坐標(biāo),x2,y2為終點(diǎn)坐標(biāo)。例如:e.Graphics.DrawLine(blackPen,100,100,200,100)[格式2]:OverloadsPublicSubDrawLine(ByValpenAsPen,ByValpt1AsPoint,ByValpt2AsPoint)其中Pen對(duì)象確定線條的顏色、寬度和樣式。Point結(jié)構(gòu)確定起點(diǎn)和終點(diǎn)?!纠?0.1】畫筆的用法演示示例。10.2.2繪制直線[格式3]:OverloadsPublicSubDrawLines(ByValpenAsPen,ByValpoints()AsPoint)這種方法用于繪制連接一組終結(jié)點(diǎn)的線條。數(shù)組中的前兩個(gè)點(diǎn)指定第一條線。每個(gè)附加點(diǎn)指定一個(gè)線段的終結(jié)點(diǎn),該線段的起始點(diǎn)是前一條線段的結(jié)束點(diǎn)。。【例】連接一組終結(jié)點(diǎn)的線條。10.2.3繪制矩形使用DrawRectangle()方法可以繪制矩形,常用形式有:[格式1]:OverloadsPublicSubDrawRectangle(ByValpenAsPen,ByValrectAsRectangle)其中rect表示要繪制的矩形的Rectangle結(jié)構(gòu)。[格式2]:OverloadsPublicSubDrawRectangle(ByValpenAsPen,ByValxAsSingle,ByValyAsSingle,ByValwidthAsSingle,ByValheightAsSingle)其中x,y為矩形左上角坐標(biāo)值。參數(shù)width是要繪制矩形的寬度,參數(shù)height是要繪制矩形的高度?!纠坷L制矩形。10.2.4繪制多邊形多邊形分為空心多邊形和填充多邊形。(1)繪制空心多邊形PublicSubDrawPolygon(ByValpenAsPen,ByValpointAsPoint())(2)繪制填充多邊形PublicSubFillPolygon(ByValbrushAsBrush,ByValpointAsPoint())其中Point數(shù)組是由一組Point結(jié)構(gòu)對(duì)象定義的多邊形。Pen對(duì)象指出畫線的畫筆。注意填充多邊形需用畫刷而不是畫筆?!纠?0.2】設(shè)計(jì)一個(gè)窗體,說(shuō)明多邊形方法的使用。10.2.5繪制曲線

曲線有空心曲線和填充曲線之分。Graphics.DrawClosedCurve可以畫出一個(gè)平滑封閉的曲線。Graphics.FillClosedCurve可以畫出一個(gè)填充閉合曲線。(1)繪制空心閉合曲線PublicSubDrawClosedCurve(ByValpenAsPen,ByValpointsAsPoint())(2)繪制填充閉合曲線PublicSubFillClosedCurve(ByValpenAsPen,ByValpointsAsPoint())points表示曲線經(jīng)過(guò)點(diǎn)的數(shù)組,其中必須包含至少4個(gè)點(diǎn)?!纠?0.3】繪制閉合曲線。10.2.6繪制橢圓和弧線

橢圓是一種特殊的封閉曲線,Graphics類專門提供了繪制橢圓的兩種方法:DrawEllipse()方法和FillEllipse()方法。常用形式有:[格式1]:PublicSubDrawEllipse(ByValpenAsPen,ByValrectAsRectangle)其中rect為Rectangle結(jié)構(gòu),用于確定橢圓的邊界。[格式2]:PublicSubDrawEllipse(ByValpenAsPen,ByValxAsInteger,ByValyAsInteger,ByValwidthAsInteger,ByValheightAsInteger)其中x,y為橢圓左上角的坐標(biāo),width定義橢圓的邊框的寬度,height定義橢圓的邊框的高度。[格式3]:PublicSubFillEllipse(ByValbrushAsBrush,ByValrectAsRectangle)填充橢圓的內(nèi)部區(qū)域。其中rect為Rectangle結(jié)構(gòu),用于確定橢圓的邊界。【例10.3】繪制橢圓和弧線

。10.3創(chuàng)建畫刷填充圖形畫刷是可與Graphics對(duì)象一起使用來(lái)創(chuàng)建實(shí)心形狀和呈現(xiàn)文本的對(duì)象??梢杂卯嬎⑻畛涓鞣N圖形形狀,如矩形、橢圓、扇形、多邊形和封閉路徑等。畫刷(Brush)類是一個(gè)抽象類,本身不能實(shí)例化。一般使用它的派生類。主要有以下幾種不同類型的畫刷Brush派生類:10.3創(chuàng)建畫刷填充圖形(1)SolidBrush畫刷SolidBrush類用來(lái)定義單一顏色的Brush,用純色進(jìn)行繪制。其構(gòu)造函數(shù)如下:PublicSubNew(ByValcolorAsColor)(2)HatchBrush畫刷類似于SolidBrush,但是可以利用該類從大量預(yù)設(shè)的圖案中選擇繪制時(shí)要使用的圖案,而不是純色。HatchBrush畫刷具有三個(gè)屬性,分別如下:HatchStyle屬性:獲取此HatchBrush對(duì)象的陰影樣式。BackgroundColor屬性:獲取此HatchBrush對(duì)象的背景色。ForegroundColor屬性:獲取此HatchBrush對(duì)象的前景色10.3創(chuàng)建畫刷填充圖形(3)LinearGradientBrush畫刷使用兩種顏色漸變混合的進(jìn)行繪制。PublicSubNew(ByValpoint1AsPoint,ByValpoint2AsPoint,ByValcolor1AsColor,ByValcolor2AsColor)圖10-9線性漸變填充10.3創(chuàng)建畫刷填充圖形(4)TextureBrush畫刷使用紋理(如圖像)進(jìn)行繪制。TextureBrush類允許使用一幅圖像作為填充的樣式。圖10-10圖像作為填充的樣式10.4圖像處理10.4.1顯示圖像10.4.2圖像的平移、旋轉(zhuǎn)和縮放10.4.3彩色圖像變換灰度圖像10.4.1顯示圖像可以使用GDI+顯示以文件形式存在的圖像文件。圖像文件可以是BMP、JPEG、GIF、TIFF、PNG等。實(shí)現(xiàn)步驟為:(1)創(chuàng)建一個(gè)Bitmap對(duì)象,指明要顯示的圖像文件;創(chuàng)建Bitmap對(duì)象,Bitmap類有很多重載的構(gòu)造函數(shù),其中之一是:PublicSubNew(ByValfilenameAsString)filename是位圖文件的名稱。可以利用該構(gòu)造函數(shù)創(chuàng)建Bitmap對(duì)象,例如:DimbitmapAsNewBitmap("tu1.jpg");(2)創(chuàng)建一個(gè)Graphics對(duì)象,表示要使用的繪圖平面;

DimgAsGraphics=窗體或圖片框控件.CreateGraphics()(3)調(diào)用Graphics對(duì)象的DrawImage方法顯示圖像。【例10.4】將文件對(duì)話框選中的圖像文件原樣顯示和縮小顯示。

10.4.1顯示圖像【例10.4】將文件對(duì)話框選中的圖像文件原樣顯示和縮小顯示。

10.4.2圖像的平移、旋轉(zhuǎn)和縮放Graphics類提供了三種對(duì)圖像進(jìn)行幾何變換的方法,它們是TranslateTransform()方法、RotateTransform()方法和ScaleTransform()方法,分別用于圖形圖像的平移、旋轉(zhuǎn)和縮放?!纠?0.5】三種變換方法示例。圖10-12三種變換方法10.4.3彩色圖像變換灰度圖像

彩色圖像像素的顏色是由三種基本色顏色,即紅(R)、綠(G)、藍(lán)(B)有機(jī)組合而成的,稱為三基色。每種基色可取0~255的值,因此由三基色可組合成(256*256*256)1677萬(wàn)種顏色,每種顏色都有其對(duì)應(yīng)的R、G、B值。

灰度是指黑白圖像中點(diǎn)的顏色深度,范圍一般從0到255,白色為255,黑色為0,故黑白圖片也稱灰度圖像,在醫(yī)學(xué)、圖像識(shí)別領(lǐng)域有很廣泛的用途。下面講解如何獲取像素點(diǎn)顏色,并將整個(gè)圖片轉(zhuǎn)成灰

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論