第二章 VB.NET 繪圖基礎


GDI+( Graphics Device Interface Plus)是 Windows操作系統用來執行繪畫及其他相關圖形操作的一套子系統,是由. Net Framework中的System.Drawing命名空間提供的一組通過C++類實現的應用程序編程接口,主要負責顯示屏幕和打印設備輸出的有關信息,它使開發人員可以利用 Windows內置的圖形功能輕松地創建圖形應用程序。

作為圖形設備接口的GDI+使得應用開發人員在輸出屏幕和打印機信息時無需考慮具體顯示設備的細節,只需調用GDI+庫輸出的類的一些方法即可完成圖形操作,真正的繪圖工作由這些方法交給特定的設備驅動程序來完成,GDI+使得圖形硬件和應用程序相互隔離從而使開發人員編寫與設備無關的應用程序變得非常容易。本教程將以 VB.Net中的GDI+的技術來實現各種繪圖功能。

GDI+繪圖的流程

  1. 創建 Graphics對象;
  2. 創建畫筆和畫刷;
  3. 使用 Graph對象的繪圖方法繪制圖形輸出文字等;
  4. 釋放 Graphics對象和繪圖對象所占用的系統資源。
    'Form1_Paint是當窗體重繪制圖形時候觸發,如:窗體初始化、窗體改變大小,都會觸發這個paint事件來完成圖形的重畫工作。
    Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
        '創建 Graphics對象
        Dim g As Graphics = e.Graphics
        '創建畫刷
        Dim b As SolidBrush = New SolidBrush(Color.Blue)
        '創建字體
        Dim f As Font = New Font("宋體", 15, FontStyle.Bold)
        '繪制文字
        g.DrawString("Hello,World!", f, b, 30, 60)
        '釋放 Graphics對象和繪圖對象所占用的系統資源
        f.Dispose()
        b.Dispose()
        g.Dispose()
    End Sub

刨建 Graphics對象

在VB.NET中用GDI+創建繪圖,必須先創建 Graphics對象。 Graphices對象表示GDI+的繪圖表面,是用來繪制圖形圖像的容器。創建 Graphics對象后,才可以使用GDI+的畫筆、
畫刷等結合Color、Font等對象進行繪制線條形狀、填充區域、顯示文本圖像等操作。

VB. NET中的窗體和所有具有Text屬性的控件都可以作為繪制圖形的表面。創建Graphics對象有以下3種方法。

1.使用 Create Graphics方法創建

通過使用某控件或窗體的 CreateGraphics方法來靈活獲取對Graphics對象的引用,該對象表示該控件或窗體的繪圖表面。這是一種常見的創建方法,其格式為

Dim 對象名 As Graphics
對象名=窗體名(或控件名).CreateGraphics
2.利用PaintEventArgs參數傳遞 Graphics對象

通過窗體或控件的Pait事件可以直接完成圖形繪制,在編寫Pant事件處理程序時,利用參數 PaintEventArgs提供的窗體圖形對象。格式為

Dim 對象名 As Graphics
對象名=e.Graphics
3.從 Image對象創建

創建 Graphics對象還可以由Image對象或者lmage類派生的任何對象來創建。調用Graphics.Fromlmage,提供要從其中創建 Graphics對象的Imge變量的名稱,如下面代碼所示:

Dim myBitmap as New Bitmap("C:\myPic")
Dim g as Graphics =Graphics.Fromlmage( myBitmap)

創建畫筆和畫刷

在獲得一個 Graphics對象之后,接下來就要決定在表面上如何進行繪制。可能需要以
下對象中的一個或幾個畫筆、畫刷。在GDI+中,Pen類和Brush類分別表示畫筆和畫刷。
在需要繪制直線、矩形和曲線的邊界時使用畫筆在需要填充圖形對象時使用畫刷。

1.畫筆Pen

在Graphics畫布上處理圖形的輪廓部分需要使用的工具是畫筆Pen。通過使用Pen類可以設置所畫線條的顏色、線寬和樣式,在使用前需要引用System.Drawing.Drawing2D名稱空間。創建畫筆的格式為:

Dim pen As New Pen(Color.Brown, 5)
2.畫刷Brush

畫刷Brush主要用於封閉圖形的填充.

  1. 只能用一種顏色填充區域的稱為單色刷,聲明單色刷的格式為:
Dim mybrush As New SolidBrush(Color.Brown)
  1. 用一個圖片來填充圖形的畫刷稱為紋理刷,聲明紋理刷的格式為:
Dim d As New TextureBrush(New Bitmap("path"))
  1. 用線性漸變色來填充圖形的畫刷稱為漸變刷,聲明漸變刷的格式為:
Dim d As New LinearGradientBrush(New Point(10), New Point(10), Color.White, Color.Black)
  1. 用條紋模式來填充圖形的畫刷稱為網格刷,聲明網格刷的格式為:
Dim d As New HatchBrush(HatchStyle.BackwardDiagonal, Color.White,  Color.Black)

圖形繪制

1. 繪制直線的格式為:g.DrawLine(pen, 10, 10, 250, 10) 或者 g.DrawLine(pen, New Point(10, 10), New Point(250, 10))

2. 繪制矩形的格式為:g.DrawRectangle(pen, 10, 10, 250, 10)

2. 繪制圓 g.DrawEllipse(pen, 10, 10, 50, 50)

3. 繪制橢圓的格式為:g.DrawEllipse(pen, New Rectangle(10, 10, 50, 10))
參數pen為畫筆,參數rect為Rectangle結構,指定圓的外切矩形區域。

4. 繪制弧線的格式為:

5. 繪制扇形

6. 繪制非閉合曲線

7. 填充圖形填充矩形的格式與對應繪制圖形的方法相似,區別是方法名由“繪制”改為“填充”,對應參數pen換成brush。

8. Clear方法使用Clear方法可以清除整個畫布並以指定的背景色填充。

使用 Graphics對象

在創建 Graphics對象、畫筆或畫刷之后,就可以繪制直線、邊框、曲線或圖像了。 Graphis類為繪制和填充圖形、曲線或圖像提供了相應的方法。例如, DrawEllipse使用特定的畫
筆來繪制橢圓的邊界,而FillEllipse將使用一種填充顏色來繪制橢圓。繪制方法使用畫筆作為參數,而填充方法則使用畫刷作為參數。

釋放 Graphics對象

在 Graphics對象使用完畢后,必須將其釋放。在VB.NET中提供了一個 Dispose方法,此方法可以用來釋放Graphics對象、畫筆對象等所占用的全部資源。

例如創建g為 Graphics對象,使用完后用g.Dispose()釋放。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM