您好,登錄后才能下訂單哦!
本實例將使用Graphics類繪制五種圖形來分別演示SolidBrush、HatchBrush、TextureBrush、LinearGradientBrush、PathGradientBrush這五種畫筆的效果,然后將這五種圖形輸出的網頁頁面中。
程序實現的主要步驟為:
(1)新建一個網站并創建Default.aspx頁面并打開Default.aspx.cs后臺代碼文件。
(2)在Default.aspx.cs代碼的Page_Load中定義一個畫布類,然后通過創建不同的實現類來實現不同的圖形,代碼如下:
01 protectedvoid Page_Load(object sender, EventArgs e)
02 {
03 Bitmap bitmap = newBitmap(950, 600);//建立位圖文件
04 Graphics gra = Graphics.FromImage(bitmap);//設置畫布,與bmap關聯
05 gra.Clear(Color.White);//設置背景為白色
06 SolidBrush solidBrush = newSolidBrush(Color.Blue);//定義單色填充畫筆
07 //使用單色填充畫筆,填充矩形內部
08 gra.FillRectangle(solidBrush, newRectangle(50, 50, 200, 200));
09 //定義具有陰影樣式、前景色以及背景色的畫筆
10 HatchBrush hatchBrush =
11 newHatchBrush(HatchStyle.Horizontal, Color.Red, Color.FromArgb(255, 255, 224));
12 //使用陰影樣式畫筆,填充橢圓形內部
13 gra.FillEllipse(hatchBrush, newRectangle(300, 50, 300, 200));
14 //加載指定的圖片
15 System.Drawing.Image image =
16 System.Drawing.Image.FromFile(Server.MapPath("image/Chrysanthemum.jpg"));
17 //通過指定的圖像定義填充畫筆
18 TextureBrush textureBrush = newTextureBrush(image);
19 //使用圖像填充畫筆,填充菱形內部
20 gra.FillPolygon(textureBrush, newPoint[] { newPoint(650, 150), newPoint(775, 50),
21 newPoint(900, 150), newPoint(775, 250) });
22 //定義線性漸變畫筆,并制定了漸變區域以及漸變顏色
23 LinearGradientBrush linearGradientBrush = newLinearGradientBrush(newPoint(50, 350), newPoint(400, 350), Color.Red, Color.Yellow);
24 //使用線性漸變填充畫筆,填充矩形內部
25 gra.FillRectangle(linearGradientBrush, newRectangle(50, 350, 350, 200));
26 GraphicsPath graphicsPath = newGraphicsPath();//定義相互連接的直線對象
27 graphicsPath.AddLine(650, 350, 900, 380);//定義頂部水平直線
28 graphicsPath.AddLine(900, 380, 900, 530);//定義右側垂直直線
29 graphicsPath.AddLine(900, 530, 630, 550);//定義底部水平直線
30 graphicsPath.CloseFigure();//關閉并使用直線連接結束點與開始點
31 //定義用于填充GraphicsPath對象內部的漸變畫筆
32 PathGradientBrush pathGradientBrush = newPathGradientBrush(graphicsPath);
33 //設置路徑漸變的中心處顏色
34 pathGradientBrush.CenterColor = Color.White;
35 //定義漸變顏色
36 pathGradientBrush.SurroundColors = newColor[] { Color.Green, Color.Blue };
37 //將帶有漸變顏色的形狀,填充到矩形內部
38 gra.FillRectangle(pathGradientBrush, newRectangle(650, 350, 920, 550));
39 Response.ContentType = "image/jpeg";//聲明響應輸出流為jpeg圖片
40 bitmap.Save(Response.OutputStream, ImageFormat.Jpeg);//將位圖輸出到響應流
41 //釋放各類使用的資源
42 bitmap.Dispose();
43 gra.Dispose();
44 solidBrush.Dispose();
45 hatchBrush.Dispose();
46 image.Dispose();
47 textureBrush.Dispose();
48 linearGradientBrush.Dispose();
49 graphicsPath.Dispose();
50 pathGradientBrush.Dispose();
51 }
(3)在使用TextureBrush類實現繪制圖形時,用到了一張圖片文件,所以接著在項目上創建一個image文件夾,然后復制一個jpg類型的圖片文件并命名為Chrysanthemum.jpg。
執行程序,運行結果如圖11.3所示。
圖11.3 Brush對象五種圖形的顯示效果
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。