常用的筆刷類別有:



















類別



說明



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 的頭像
    tsjeng

    電腦心得及科學隨筆

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