天天看點

.NET3.5 GDI+ 圖形操作4

.NET3.5 GDI+ 圖形操作4
.NET3.5 GDI+ 圖形操作4

在.NET中圖形包括以下兩個步驟。

第一,建立Graphics對象。

第二,使用Graphics對象繪制線條和形狀,呈現文本或顯示操作圖像。

由此可見,如何建立Graphics對象是首先要解決的問題。本節将講述如何繪制直線、矩形、圓等基本圖形,然後基本圖形構成複雜的圖形。Graphics常用的繪圖方法如下表。

.NET3.5 GDI+ 圖形操作4

10.3.1 建立圖形對象

建立圖形對象可有如下幾種方法。

²  在窗體或控件的Paint事件中接收對圖形對象的引用,作為PaintEventArgs的一部分。在為控件建立繪制代碼時,通常使用此方法來擷取對圖形對象的引用。

²  調用某控件或窗體的CreateGraphics方法,以擷取對Graphics對象的引用,該對象表示該控件或窗體的繪圖圖面。如果想在已存在的窗體或控件上繪圖,可使用此方法。

²  由從Image繼承的任何對象建立Graphics對象。此方法一般用來生成圖檔。

就ASP.NET Web應用程式而言,前兩種是無法做到的,是以隻能采用第三種方法。

假設要從網站根目錄mm.jpg圖形建立圖形對象,可以使用如下代碼:

Bitmap bmp = new Bitmap(Server.MapPath("~/mm.jpg"));

Graphics g = Graphics.FromImage(bmp);

bmp.Dispose();

g.Dispose();

注意:這裡要求圖檔必須存在,相當于對圖檔的修改操作,否則将不能建立Bitmap對象,也就無法建立圖形對象了。另外,Bitmap對象和圖形對象都是非常耗費計算機記憶體的,是以要及時調用Dispose方法釋放占用資源。

當然,也可以在記憶體中建立Bitmap對象,對其繪制完畢後再儲存到硬碟上或直接輸入到HTTP流中發回用戶端顯示。比如在記憶體中建立一個200+100的圖像,代碼如下:

Bitmap bmp = new Bitmap(200,100);

如果要新建立一個圖像,則用這種方法是最好的。

10.3.2 繪制直線

繪制直線一般使用Graphics對象的DrawLine方法。下面的代碼在mm.jpg圖檔上用紅色線條斜畫一條直線。

.NET3.5 GDI+ 圖形操作4
.NET3.5 GDI+ 圖形操作4

Code

Pen pen = new Pen(Color.Red); // 建立一支紅筆

g.DrawLine(pen, 0, 0, 200, 200); // 從[0,0]到[200,200]畫直線

pen.Dispose();

// 存為新圖檔

bmp.Save(Server.MapPath("~/mm2.jpg"));

代碼說明:

bmp.Save: 将Image對象儲存到磁盤。Graphics對象并非直接在原圖上畫直線,而是在記憶體中操作Image對象,是以需要另存為mm2.jpg才能看出效果。

程式運作後,檢視mm2.jpg檔案就可以看到效果了,如下圖:

.NET3.5 GDI+ 圖形操作4

繼續閱讀