常用的筆刷類別有:



















類別



說明



SolidBrush



建立單一顏色的筆刷。
例如:建立紅色筆刷,並以紅色筆刷建立畫筆:
Dim sb As SolidBrush =New SolidBrush(Color.Red)
Dim pen As Pen=New Pen(sb,2)



TextureBrush



建立以圖形物件當作圖案的筆刷。
例如:以 檔的圖案建立圖案的筆刷,並以此圖案筆刷建立畫筆:
Dim tb As TextureBrush = New TextureBrush (“bmp1.bmp”)

Dim pen As Pen= New Pen(tb,2)



HatchBrush



建立花紋筆刷。
建立花紋筆刷的語法:
Dim
花紋筆刷變數 As HatchBrush = New (花紋樣式,前景顏色,背景顏色)
例如:建立藍、紅色波浪花紋筆刷,並以此花紋圖案筆刷建立畫筆:

Dim hb As HatchBrush = New HatchBrush(HatchStyle.Wave, Color.Blue, Color.Red)
pen = New Pen(hb, 10)  '
建立花紋畫筆
註:花紋筆刷類別包含在 Drawing2D 的命名空間,因此,必須在程式的第一行引用,亦即要加入下列程式碼:
Imports System.Drawing.Drawing2D



LinearGradienBrush



建立漸層筆刷。


建立漸層筆刷的語法:
Dim
漸層筆刷變數 As LinearGradienBrush = New LinearGradienBrush (漸層矩形區域,前景顏色,背景顏色,漸層傾斜角度)
漸層矩形區域是指漸層區塊的大小,通常會定義的比畫筆大,如果定義的比畫筆小,顯示時將會呈現磚塊的效果。漸層矩形區域可以宣告一個矩形區域,例如以整個 PictureBox1 為漸層區域的語法如下:

Dim rect1 As New Rectangle(0, 0, PictureBox1.Size.Width, PictureBox1.Size.Height)
例如:建立藍、紅色垂直漸層筆刷,並以此漸層筆刷建立畫筆。
Dim rect1 As New Rectangle(0, 0, PictureBox1.Size.Width, PictureBox1.Size.Height)
Dim lgb As LinearGradientBrush = New LinearGradientBrush(rect1, Color.Blue, Color.Red, 90)
pen = New Pen(lgb, 10)  '
建立漸層畫筆
註:漸層筆刷類別包含在 Drawing2D 的命名空間,因此,必須在程式的第一行引用,亦即要加入下列程式碼:
Imports System.Drawing.Drawing2D



 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 



繪製文字和直線的方法:














方法



說明



DrawingString(String,Font,Brush,x,y)



(x,y) 座標位置,以 Font 的字型和 Brush 的筆刷,繪製 String 的文字。
例如:在座標 (20,20),以藍色筆刷,繪製繪製藍色文字,字型樣式為標楷體,字型大小 12文字:
Dim brush As SolidBrush = New SolidBrush(Color.Blue)
Dim font As Font = New Font("
標楷體",12)
g.DrawString("
繪製藍色文字,字型樣式為標楷體,字型大小 12",font,brush,20,20)



DrawLine(Pen,x1,y1,x2,y2)



使用 Pen 畫筆,從 (x1,y1) (x2,y2) 座標繪製一條直線。
例如:以藍色畫筆,自 (10,20) (50,60) 繪製一條直線:
Dim g As Graphics=Me.CreateGraphics '
建立 Graphics 物件
Dim pen As Pen=New Pen(Color.Blue,3)
g.DrawLine(pen,10,20,50,60)




 


 


 


 


 


 


 


 


 


 


 


 


 


 


 



繪製矩形和多邊形的方法:














方法



說明



DrawRectangle(Pen,x,y,width,height)



使用 Pen 畫筆,以 (x,y) 座標為矩形的左上角,繪製寬 width,高 height 的矩形。
例如:以藍色畫筆,自 (10,20) 繪製寬 50,高 50 的矩形:
Dim g As Graphics = Me.CreateGraphics
Dim p As Pen = New Pen(Color.Blue, 5)
g.DrawRectangle(p, 10, 20, 50, 50)



DrawPolygon(Pen,Point())



使用 Pen 畫筆,以 Point() 陣列中的各個點為多邊形的端點,繪製多邊形。
例如:以藍色畫筆,繪製三角形。
Dim g As Graphics=Me.CreateGraphics
Dim pen As Pen=New Pen(Color.Blue,3)
Dim p_Array() As Point = {New Point(310, 20), New Point(230, 210), New Point(410, 210)}  
三角形頂點


g.DrawPolygon(p, p_Array)  '繪多邊形 (三角形)




 


 


 


 


 


 


 


 


 


 


 


 


 


 



繪製曲線的方法如下:























方法



說明



DrawEllipse(Pen,x,y,width,height)

DrawEllipse(Pen,Rectangle)



使用 Pen 畫筆,以 (x,y) 座標為左上角,繪製寬 width,高 height 的橢圓。
例如:以藍色畫筆,自 (10,20) 繪製寬 50,高 50 的橢圓。
Dim g As Graphics = Me.CreateGraphics
Dim p As Pen = New Pen(Color.Blue, 5)
g.DrawEllipse (p, 10, 20, 50, 50)



DrawArc(Pen,x,y,width,height,startAngle,sweepAngle)

DrawArc(Pen,Rectangle,startAngle,sweepAngle)



使用 Pen 畫筆,在以 (x,y) 座標為左上角,寬 width,高 height 的橢圓路徑上,自起始角 startAngle 開始繪製圓弧,sweepAngle 為繪製圓弧的長度 (角度),角度為正代表順時針,角度為負代表逆時針。
例如:以藍色畫筆,在以 (20, 20, 160, 120) 的橢圓路徑上繪製橢圓,圓弧起始角為 270 度,逆時針共繪 90 度的圓弧。
Dim g As Graphics = Me.CreateGraphics
Dim p As Pen = New Pen(Color.Blue, 1)
g.DrawArc(p, 20, 20, 160, 120, 270, -90)



DrawPie(Pen,x,y,width,height,startAngle,sweepAngle)

DrawPie(Pen,Rectangle,startAngle,sweepAngle)



使用 Pen 畫筆,在以 (x,y) 座標為左上角,寬 width,高 height 的橢圓路徑上,自起始角 startAngle 開始繪製扇形,sweepAngle 為繪製扇形的長度 (角度),角度為正代表順時針,角度為負代表逆時針。
例如:以藍色畫筆,在以 (20, 20, 160, 120) 的橢圓路徑上繪製扇形,扇形起始角為 270 度,逆時針共繪 90 度的扇形。
Dim g As Graphics = Me.CreateGraphics
Dim p As Pen = New Pen(Color.Blue, 1)
g.DrawPie(p, 20, 20, 160, 120, 270, -90)



DrawBezier(Pen,x1,y1,x2,y2,x3,y3,x4,y4)



使用 Pen 畫筆,自 (x1,y1) (x4,y4) 畫貝茲曲線,(x2,y2) (x3,y3) 用以決定貝茲曲線的形狀,貝茲曲線一定要指定四個點。
例如:
g.DrawBezier(p, New Point(380, 140), New Point(410, 40), New Point(430, 100), New Point(460, 20))



DrawCurve(Pen,Point())



使用 Pen 畫筆,以 Point() 陣列中的各個點為曲線的端點,繪製曲線。
例如:
Dim p_Array() As Point = {New Point(380, 140), New Point(410, 40), New Point(430, 100), New Point(460, 20)}
g.DrawCurve(p, p_Array)



 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


繪製填滿圖形的方法如下:




















方法



說明



FillRectangle(Brush,x,y,width,height)



使用 Brush 筆刷,以 (x,y) 座標為矩形的左上角,繪製寬 width,高 height 填滿的矩形。
例:以藍色筆刷,自 (20,20) 繪製寬 160,高 120 的填滿矩形。
Dim g As Graphics = Me.CreateGraphics
Dim Brush As Brush = New SolidBrush(Color.Blue)
g.FillRectangle(Brush, 20, 20, 160, 120)



FillPolygon(Brush,Point())



使用 Brush 筆刷,以 Point() 陣列中的各個點為多邊形的端點,繪製填滿的多邊形。
例如:以漸層色筆刷,繪製填滿的三角形。
Dim rect1 As New Rectangle(0, 0, Me.Size.Width, Me.Size.Height) '
以整個表單為漸層區域
Dim lgb As LinearGradientBrush = New LinearGradientBrush(rect1, Color.Blue, Color.Red, 90)
Dim p_Array() As Point = {New Point(380, 140), New Point(430, 40), New Point(480, 140)}
g.FillPolygon(lgb, p_Array)



FillEllipse(Brush,x,y,width,height)

FillEllipse(Brush,Rectangle)



使用 Brush 筆刷,以 (x,y) 座標為左上角,繪製寬 width,高 height 的填滿橢圓。
例:以藍色筆刷,自 (20,20) 繪製寬 160,高 120 的填滿橢圓。
Dim g As Graphics = Me.CreateGraphics
Dim Brush As Brush = New SolidBrush(Color.Blue)
g.FillEllipse(Brush, 20, 20, 160, 120)



FillPie(Brush,x,y,width,height,startAngle,sweepAngle)

FillPie(Brush,Rectangle,startAngle,sweepAngle)



使用 Brush 筆刷,在以 (x,y) 座標為左上角,寬 width,高 height 的橢圓路徑上,自起始角 startAngle 開始繪製填滿扇形,sweepAngle 為繪製扇形的長度 (角度),角度為正代表順時針,角度為負代表逆時針。
例:以藍色筆刷,在以 (20, 20, 160, 120) 的橢圓路徑上繪製填滿扇形,扇形起始 270 度,逆時針繪 90 度圓弧。
Dim g As Graphics = Me.CreateGraphics
Dim Brush As Brush = New SolidBrush(Color.Blue)
g.FillPie( Brush , 20, 20, 160, 120, 270, -90)



 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


繪圖物件提供平移、縮放和旋轉的方法,其方法如下:




















方法



說明



TranslateTransform(x,y)



將繪圖物件右移平移 x 點,下移 y 點。



ScaleTransform(sx,sy)



將繪圖物件 X 軸縮放 sx 倍,Y 軸縮放 sy 倍,比例大於 1 代表放大,小於 1 代表縮小。



RotateTransform(angle)



將繪圖物件旋轉 angle 角度,角度為正代表順時針,角度為負代表逆時針。。



ResetTransform()



將繪圖物件還原。



 


 


 


 


 


 


 


Bitmap 的重要方法:























方法



說明



FromImage



宣告一個記憶體畫布,畫布內容為 Bitmap 記憶體圖像。
例如:宣告 g 為淺藍色的記憶體畫布,畫布內容為 bmp 記憶體圖像,畫布大小和表單相同,畫布顏色為淺綠色:
bmp = New Bitmap(Me.Width, Me.Height)
Dim g As Graphics = Graphics.FromImage(bmp)
g.Clear(Color.LightGreen)



Clone



取得 Bitmap 上指定區域的圖像。



Dispose



釋放 Bitmap



GetPixel



取得 Bitmap 上指定像素 (Pixel) 的顏色。



SetPixel



設定 Bitmap 上指定像素 (Pixel) 的顏色。



arrow
arrow
    全站熱搜

    tsjeng 發表在 痞客邦 留言(0) 人氣()