程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> 關於.NET >> .NET3.5 GDI+圖形操作5

.NET3.5 GDI+圖形操作5

編輯:關於.NET

10.3.3 繪制簡單圖形

簡單圖形是組成復雜圖形的基礎,通過本小節的例子,讀者可以掌握繪制復雜圖形的基礎 。

除了直線外,矩形是所有簡單圖形的基礎。因為在Windows操作系統中,大部分圖形在內 存中的表示都是矩形塊,比如一個窗體、一個按鈕控件等。即使是圓形的界面元素,在表示 其位置時,仍然以所在矩形的左上角坐標為參照點,通過寬和高來框定其位置及其區域。

那麼如何繪制矩形?Graphics中的DrawRectangle可以在規定一個左上角頂點和長寬邊長 的情況下繪制一個矩形。下面的代碼實現生成一個400*300的圖片,並畫出一個矩形。

Pen pen = new Pen(Color.Red); // 創建一支紅筆
Bitmap bmp = new Bitmap(400,300);
Graphics g = Graphics.FromImage(bmp);
// 以[50,50]為左上角,以長300,寬200繪制矩形
g.DrawRectangle(pen,new Rectangle(50,50,300,200));
pen.Dispose();
g.Dispose();
// 存為新圖片
bmp.Save(Server.MapPath("~/aa.jpg"));
bmp.Dispose();

運行後,查看aa.jpg的效果如圖。

如何繪 制圓形呢?Graphics中的DrawDllipse可以在一個矩形范圍內繪制橢圓,當把矩形設置為正方 形時,就能畫成為正圓,代碼如下所示:

Pen pen = new Pen (Color.Red); // 創建一支紅筆
Bitmap bmp = new Bitmap(400,400);
Graphics g = Graphics.FromImage(bmp);
// 以[50,50]為左上角,以長300,寬300的矩形內繪制圓
g.DrawEllipse(pen, new Rectangle(50,50,300,300));
pen.Dispose();
g.Dispose();
// 存為新圖片
bmp.Save(Server.MapPath("~/bb.jpg"));
bmp.Dispose();

運行後,查看bb.jpg的效果如下圖。

10.3.4 繪制文本

有時用戶需要在圖片上顯示文字,Graphics中的DrawString可以在圖形上繪 制文字,其中可以指定坐標、字體、字號等信息。下面的代碼簡單地在圖片上寫了幾個漢字 。

Bitmap bmp = new Bitmap(200, 100);
Graphics g = Graphics.FromImage(bmp);
string str = "畫在圖片上的文字";
Font font = new Font("宋體", 10);
// 黑色筆刷
SolidBrush brush = new SolidBrush(Color.Black);
g.DrawString(str, font, brush, 50, 50); // 從[50,50]位置開始寫字
font.Dispose();
brush.Dispose();
g.Dispose();
// 存為新圖片
bmp.Save(Server.MapPath("~/text.jpg"));
bmp.Dispose();

運行後,text.jpg的效果如下圖所示。

注意: 使用GDI+畫上去的文字是二進制信息,無法作為文本復制粘貼

10.3.5 填充圖形

前面的簡單圖形基本只有邊界,內部區域是空心的。如果想繪制一個實心圖形,可以 使用Graphics中的FillXXX方法,並使用刷子(Brush對象)填充。

下面的代碼示例實 現用藍色填充一個圓形區域。

Bitmap bmp = new Bitmap(300, 300);
Graphics g = Graphics.FromImage(bmp);
// 藍色筆刷
SolidBrush brush = new SolidBrush(Color.Blue);
g.FillEllipse(brush, new Rectangle(5,5,250,250));
brush.Dispose();
g.Dispose();
// 存為新圖片
bmp.Save(Server.MapPath("~/fill.jpg"));
bmp.Dispose();

運行後,查看fill.jpg的效果如圖。

由此可 見,利用Fill操作可以很方便地填充圖形,如果需要使邊界實出顯示,可以再用Draw方法將 邊界繪制出來。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved