




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
WindowsCEEmbeddedSystemDevelopment第3章屏幕圖形圖像應用開發(fā)
本章學習目標了解GDI+圖形設備接口掌握常用的GDI+圖形繪制掌握圖像的繪制方法掌握圖形編程方法WindowsCEEmbeddedSystemDevelopment3.1基于GDI屏幕繪圖
3.1.1GDI+簡介GDI+:GraphicsDeviceInterfacePlus也就是圖形設備接口,它提供了各種豐富的圖形圖像處理功能,在WindowsCE系統(tǒng)中,它充當應用程序和硬件設備之間的中間層,封裝與硬件交互所需的低級API,這些API函數(shù)可用于繪制圖形和文本。在.NETCompactFramework中,GDI+通過一套部署為托管代碼的類來展現(xiàn),這套類被稱為GDI+的“托管類接口”,GDI+主要提供了以下三類服務:WindowsCEEmbeddedSystemDevelopment
二維矢量圖形:GDI+提供了存儲圖形基元自身信息的類(或結構體)、存儲圖形基元繪制方式信息的類以及實際進行繪制的類。
圖像處理:大多數(shù)圖片都難以劃定為直線和曲線的集合,無法使用二維矢量圖形方式進行處理。因此,GDI+為我們提供了Bitmap、Image等類,它們可用于顯示、操作和保存BMP、JPG、GIF等圖像格式。文字顯示:GDI+支持使用各種字體、字號和樣式來顯示文本。我們要進行圖形編程,就必須了解Graphics類,同時我們還必須掌握Pen、Brush和Rectangle等這幾種類。WindowsCEEmbeddedSystemDevelopment3.1.2設備繪圖表面在嵌入式設備上使用GDI+進行繪圖時,得到的圖形可以放在兩種目標環(huán)境中,一種是屏幕上窗口,另一種是內存中的位圖。每一個環(huán)境都有一個繪圖表面,而繪圖表面包括兩種,矢量表面和光柵表面。1、矢量表面2、光柵表面在矢量表面上,圖元是用一種實體表示的,該實體具有特定的坐標、方向、大小等屬性。
在光柵表面上,圖元是一組著了色的像素集合。WindowsCEEmbeddedSystemDevelopment3、使用Graphics類創(chuàng)建繪圖表面在GDI+中可以利用Graphics類創(chuàng)建一個與目標環(huán)境相關的繪圖表面,即產生對應的Graphics對象,Graphics對象與特定的設備上下文關聯(lián),并提供繪制圖形圖像到顯示設備的方法,這樣就可以在該表面上進行圖形組件的繪制。
有四種方法可以創(chuàng)建Graphics對象,分別如下:(1)Graphics.FromHdc方法該方法用于從一個設備環(huán)境句柄中創(chuàng)建一個繪圖表面,在編程中用這種方法創(chuàng)建繪圖表面可以將GDI+中托管對象和非托管對象聯(lián)系在一起。WindowsCEEmbeddedSystemDevelopment(2)Graphics.FromImage方法該方法用于從內存中的一個位圖對象去創(chuàng)建繪圖表面,這樣在繪圖表面上繪制的圖形都將被保存在位圖中。例如:Bitmapm_bitmp=newBitmap(@"\My.bmp"); Graphicsg=Graphics.FormImage(m_bitmp);(3)使用控件類的CreateGraphics方法調用某控件或窗體的CreateGraphics方法以獲取對Graphics對象的引用,該對象表示該控件或窗體的繪圖圖面。例如:Graphicsg=this.CreateGraphics()WindowsCEEmbeddedSystemDevelopment
(4)在窗體或控件的Paint事件處理方法中創(chuàng)建Graphics對象通過窗體或控件觸發(fā)Paint事件,并在Paint事件中接收對圖形對象的引用。例如:privatevoidForm1_Paint(objectsender,System. Windows.Forms.PaintEventArgse) { Graphicsg=e.Graphics; }也可以直接重載控件或窗體的OnPaint方法,如下所示:protectedoverridevoidOnPaint(PaintEventArgse){Graphicsg=e.Graphics;}WindowsCEEmbeddedSystemDevelopment3.1.3繪圖操作工具在創(chuàng)建了Graphics對象后,就可以用它開始繪圖了,如可以畫線、填充圖形、顯示文本等等,其中主要用到的對象有:Pen、Brush、Color、Font、Point以及Rectangle對象。1、Pen類Pen類用于繪制直線或曲線對象,通過它本身的屬性能夠繪制具有指定寬度和樣式的直線。
例如:創(chuàng)建Pen對象的兩種方法:PenredPen=newPen(Color.Red)PenredPen=newPen(Color.Red,3)WindowsCEEmbeddedSystemDevelopment2、Brush類Brush類定義用于填充圖形形狀內部的對象,Brush類是一個抽象基類,不能進行實例化處理。如果需要創(chuàng)建一個畫刷對象,則需要Brush類的派生類。SolidBrush類和TextureBrush類都是Brush類的子類,位于System.Drawing命名空間中。例如,下面的代碼創(chuàng)建了一個實心畫刷和位圖畫刷。SolidBrushmyBrush=newSolidBrush(Color.Blue);TextureBrushtBrush=newTextureBrush(Properties.Resources.Bitmap);WindowsCEEmbeddedSystemDevelopment3、Color結構GDI+用System.Drawing.Color結構來描述顏色,在.NETCF類庫中GDI+使用RGB顏色。例如:Colormm=Color.FormArgb(0,255,0);4、Font類Font類定義特定文本格式,包括字體、字號和字形屬性。例如:Fontfont=newFont(“Arial”,16,FontStyle.Bold);WindowsCEEmbeddedSystemDevelopment5、Point類Point類對象用于指定坐標初始化Point類的新實例。
例如:Pointpt1=newPoint(30,30);6、Rectangle類Rectangle類對象存儲一組整數(shù),共四個,表示一個矩形的位置和大小。
Rectangle結構的構造函數(shù)為:publicRectangle(intx,inty,intwidth,intheight);WindowsCEEmbeddedSystemDevelopment3.1.4常用圖形的繪制方法名稱說明DrawLine繪制線條DrawRectangle繪制矩形DrawPolygon繪制多邊形DrawEllipse繪制橢圓形FillEllipse填充橢圓FillRectangle填充矩形通過GDI+可以繪制直線、矩形、橢圓、弧線、多邊形和基數(shù)樣條等矢量圖形。WindowsCEEmbeddedSystemDevelopment1、畫直線2、畫橢圓3、畫矩形使用Graphics類的DrawLine方法。格式為:DrawLine(畫筆,x1,y1,x2,y2)使用Graphics類的DrawEllipse方法。格式1為:DrawEllipse(畫筆,矩形結構數(shù)據)。使用Graphics類的DrawRectangle方法。格式1為:DrawRectangle(畫筆,矩形結構數(shù)據)。WindowsCEEmbeddedSystemDevelopment4、畫多邊形5、填充橢圓6、填充矩形使用Graphics類的DrawPolygon方法。格式為:DrawPolygon(畫筆,Point[]points)使用Graphics類的FillEllipse方法。格式1為:FillEllipse(BrushF,矩形結構數(shù)據)使用Graphics類的FillRectangle方法,格式1為:FillRectangle(BrushF,矩形結構數(shù)據)WindowsCEEmbeddedSystemDevelopment3.1.5繪制文本在.NETCompactFramework中,利用GDI+庫中的Graphics類的DrawString方法可以實現(xiàn)文本的繪制工作。1、對于Graphics類的DrawString方法有四個重載方法:(1)publicvoidDrawString(stringstr,F(xiàn)ontft,Brushbh,RectangleFrf);(2)publicvoidDrawString(stringstr,F(xiàn)ontft,Brushbh,RectangleFrf,StringFormatft);(3)publicvoidDrawString(stringstr,F(xiàn)ontft,Brushbh,floatx,floaty);WindowsCEEmbeddedSystemDevelopment(4)publicvoidDrawString(stringstr,F(xiàn)ontft,Brushbh,floatx,floaty,StringFormatft);3.1.6繪制圖像1、用屏幕作繪圖表面進行繪圖(1)在指定的位置按原始大小繪制指定的Image圖像。方法為:publicvoidDrawImage(Imageimage,intx,inty)(2)對Image圖像進行縮放方法為:publicvoidDrawImage(Imageimage,Rectangle destRect,RectanglesrcRect, GraphicsUnitsrcUnit)WindowsCEEmbeddedSystemDevelopment2、用內存中位圖作繪圖表面例如下面MyDrawBitMap方法表示用指定大小的內存位圖創(chuàng)建一個繪圖表面:privatevoidMyDrawBitMap()//{Bitmapm_bmp=newBitmap(width,height);Graphicsg=Graphics.FromImage(m_bmp);g.FillRectangle(參數(shù));g.DrawString(參數(shù));}privatevoidMainForm_Paint(objectsender,EventArgse){e.Graphics.DrawImage(m_bmp,0,0);//將內存中繪制完成的位圖顯示在屏幕上。}WindowsCEEmbeddedSystemDevelopment3、將Image圖像保存為文件在一個內存位圖的繪圖表面上完成繪圖工作以后,希望將圖像結果保存為文件,以備今后瀏覽或使用,Bitmap類提供了Save方法用于完成這一工作。方法為:publicvoidSave(stringfilename,ImageFormat format);WindowsCEEmbeddedSystemDevelopment3.2手寫筆簽名程序開發(fā)3.2.1程序功能設計1、功能描述程序實現(xiàn)的功能是在WindowsCE設備上用手寫筆點下并劃動觸摸屏時,將記錄所有經過的點,并將它們連接在一起,這樣整個圖形就可以看成是由一個個線條構成的,如果單擊清除按鈕,則擦除剛剛所寫的內容,單擊保存文件按鈕,就會保持前一次所寫內容,單擊轉載文件按鈕,將前一次保持的文件裝載并顯示在屏幕正下方。
WindowsCEEmbeddedSystemDevelopment2、手寫筆事件響應處理程序手寫筆事件處理說明手寫筆事件程序事件對應的操作Click事件當手寫筆單擊觸摸屏時,響應事件。MouseDown事件當手寫筆接觸到觸摸屏時,開啟一個新的線條MouseMove事件當手寫筆接觸到觸摸屏并移動手寫筆時,陸續(xù)連接手寫筆經過的一個個連續(xù)的點,以便構成一個線條。MouseUp事件當手寫筆離開觸摸屏時,結束連接當前的最后一個點。WindowsCEEmbeddedSystemDevelopment3.2.2程序功能實現(xiàn)1、創(chuàng)建手寫筆程序工程項目2、SignatureControl組件類功能實現(xiàn)WindowsCEEmbeddedSystemDevelopment3、項目窗體功能設計WindowsCEEmbeddedSyste
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 冷藏合同范本
- 加工車間轉租合同范本
- 不見面簽訂租賃合同范本
- 2025年合肥貨運車從業(yè)考試題
- 個人施工承攬合同范本
- app開發(fā)合同范本模板
- 加工訂單合同范本模板
- 農村供熱服務合同范本
- 個人股權質押合同范本
- 光租船合同范本
- DB4409-T 44-2023 地理標志產品 化橘紅質量等級
- JTG F40-2004 公路瀝青路面施工技術規(guī)范
- 黃龍溪古鎮(zhèn)文化旅游發(fā)展現(xiàn)狀與對策研究
- JT-T-1045-2016道路運輸企業(yè)車輛技術管理規(guī)范
- 2024年事業(yè)單位衛(wèi)生系統(tǒng)(護理學)招聘考試題庫與答案
- 互聯(lián)網金融 個人網絡消費信貸 貸后催收風控指引
- 2024年重慶市銅梁區(qū)龍都水資源開發(fā)有限責任公司招聘筆試參考題庫附帶答案詳解
- 體檢科健康管理案例分析
- 涼山州西昌市人民醫(yī)院招聘臨床護理人員考試試題及答案
- 2024年輔警招聘考試試題庫附完整答案(必刷)
- 會議記錄表格樣本
評論
0/150
提交評論