C#學習筆記:GDI圖形高級編程(2)——關於Brush類

使用GDI圖形接口進行繪圖時,如果需要填充圖形,那麼就需要創建一個畫刷(Brush)對象。GDI的Brush類本身是抽象類,不能直接實例化,所以GDI API 提供了一下五個類,來擴展Brush,並提供了具體的實現,如下:


下面將給出幾個簡單的例子來說明其用法並展示使用效果。

1、SolidBrush類

1)代碼片段

Graphics g=this.CreateGraphics();
Brush brush=new SolidBrush(Color.FromArgb(0,255,0));//設置畫刷的顏色爲綠色
g.FillEllipse(brush,100,100,200,200)//畫一個橢圓,並用紅色填充
(2)運行效果

2、TextureBrush類

(1)代碼片段

Graphics g=this.CreateGraphics();
Bitmap map=new Bitmap("001.jpg");//載入一張圖片
Brush brush=new TexureBrush(map);//創建一個文理畫刷
g.FillRectangle(brush, 0, 0, 800, 500);//用圖片文理填充矩形
(2)運行效果



(3)TextureBrush構造函數的其他重載

TextureBrush類的構造方法有7種重載,上面是最常用的一種,還有一種也比較常用,那就是

TextureBrush(Image bitmap,Rectangle rect),該構造方法的作用就是用矩形截取圖片的一部分作爲畫刷。下面是例子:

Graphics g=new CreateGraphics();
Bitmap map=new Bitmap("001.jpg");
Rectangle rect=new Rectangle(0,0,200,200);//創建一個矩形結構
Brush brush=new TextureBrush(map,rect);//用矩形來截取圖片的一部分作爲填充文理
g.FillRectangle(brush,0,0,800,500);

運行的效果如下:


3、LinearGradientBrush類

使用LinearGradientBrush類還需引用名稱空間:

Using System.Drawing.Drawing2D

(1)代碼片段

LinearGradientBrush類的構造方法有8個,下面將使用由點到點的漸變畫刷。

該重載的原型是LinearGradientBrush(PointF point1,PointF point2,Color color1,Color color2),前兩個參數表示從點一到點二進行漸變,後兩個參數表示從顏色一漸變到顏色二。下面是例子:

Graphics g=this.CreateGraphics();
PointF p1=new PointF(0,0);//p1點在(0,0)處
PointF p2=new PointF(800,500);//p2點在(800,500)處
Color  c1=Color.FromArgb(255,0,0);
Color  c2=Color.FromArgb(0,255,0);
Brush=new LinearGradientBrush(p1,p2,c1,c2);
g.FillRectangle(brush,0,0,800,500);
(2)運行效果



4、PathGradientBrush類

使用該類也要引用名稱空間:

Using System.Drawing.Drawing2D
(1)代碼片段

該類的構造方法也有幾個重載,下面是其中的一個。

Graphics g=this.CreateGraphics();
Point[] points=new Point[4];//生成路徑的頂點
points[0] = new Point(10, 10);
points[1] = new Point(200, 50);
points[2] = new Point(250, 150);
points[3] = new Point(200, 250);
Color[] colors = new Color[4];//路徑各頂點的顏色
colors[0] = Color.FromArgb(255, 0, 0);
colors[1] = Color.FromArgb(255, 255, 0);
colors[2] = Color.FromArgb(255, 0, 255);
colors[3] = Color.FromArgb(0, 0, 255);
PathGradientBrush brush=new PathGradientBrush(pionts);//將路徑的頂點傳給畫刷
brush.CenterPoint=new Point(200,150);//設定圖形的中心點
brush.SurroundColors = colors;//設定圖形輪廓各頂點的顏色
g.FillPolygon(brush, points);//填充多邊形
(2)運行的效果



5、HatchBrush類

引用名稱空間:

Using System.Drawing.Drawing2D
(1)代碼片段

Graphics g=this.CreateGraphics();
HatchBrush brush=new HatchBrush(HatchStyle.DashedDownwardDiagonal,Color.FromArgb(255,0,0));
//第一個參數是圖案的類型,只能從HatchStyle裏面去選
g.FillRectangle(brush, 0, 0, 500, 200);
(2)運行效果




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章