gdi+:graphics device inte***ce plus也就是圖形裝置介面,提供了各種豐富的圖形影象處理功能;在c#.net中,
使用gdi+處理二維(2d)的圖形和影象,使用directx處理三維(3d)的圖形影象,圖形影象處理用到的主要命名空間
是system . drawing:提供了對gdi+基本圖形功能的訪問,主要有graphics類、bitmap類、從brush類繼承的類、
font類、icon類、image類、pen類、color類等.
建立乙個畫板主要有3種方式:
a: 在窗體或控制項的paint事件中直接引用graphics物件
b: 利用窗體或某個控制項的creategraphics方法
c: 從繼承自影象的任何物件建立graphics物件
一、 畫筆基本圖形
graphics g = this.creategraphics();
pen p = new pen(color.blue, 2);//定義了乙個藍色,寬度為的畫筆
g.drawline(p, 40, 60, 130, 150);//在畫板上畫直線,
g.drawrectangle(p, 40, 60, 130, 150);//在畫板上畫矩形,
g.drawellipse(p, 40, 60, 130, 150);//在畫板上畫橢圓,
g.dispose();
p.dispose();
二、pen的使用
//清空畫板
this.creategraphics().clear(this.backcolor);
pen p = new pen(color.blue, 5);//設定筆的粗細為,顏色為藍色
graphics g = this.creategraphics();
//畫虛線
p.dashstyle = dashstyle.dot;//定義虛線的樣式為點
g.drawline(p, 80, 80, 270, 80);
//自定義虛線
p.dashpattern = new float ;//設定短劃線和空白部分的陣列
g.drawline(p, 80, 90, 270, 90);
//畫箭頭,只對不封閉曲線有用
p.dashstyle = dashstyle.solid;//恢復實線
p.endcap = linecap.arrowanchor;//定義線尾的樣式為箭頭
g.drawline(p, 80, 100, 270, 100);
g.dispose();
p.dispose();
三、brush的使用
我們可以用畫刷填充各種圖形形狀,如矩形、橢圓、扇形、多邊形和封閉路徑等,主要有幾種不同型別的畫刷:
• solidbrush:畫刷最簡單的形式,用純色進行繪製
• hatchbrush:類似於 solidbrush,但是可以利用該類從大量預設的圖案中選擇繪製時要使用的圖案,而不是純色
• texturebrush:使用紋理(如影象)進行繪製
• lineargradientbrush:使用沿漸變混合的兩種顏色進行繪製
• pathgradientbrush :基於程式設計者定義的唯一路徑,使用複雜的混合色漸變進行繪製
(一般會用到graphicspath類,及graphics類的drawpath,或fillpath方法)
graphics g = this.creategraphics();
rectangle rect = new rectangle(60, 60, 100, 100);//定義矩形,引數為起點橫縱座標以及其長和寬
//單色填充
solidbrush b1 = new solidbrush(color.blue);//定義單色畫刷
g.fillrectangle(b1, rect);//填充這個矩形
//字串
g.drawstring("字串", new font("宋體", 10), b1, new pointf(90, 10));
//用填充
rect.location = new point(60, 120);//更改這個矩形的起點座標
rect.width = 200;//更改這個矩形的寬來
rect.height = 200;//更改這個矩形的高
g.fillrectangle(b2, rect);
//用漸變色填充
rect.location = new point(60, 340);
lineargradientbrush b3 = new lineargradientbrush(rect, color.yellow, color.black, lineargradientmode.horizontal);
g.fillrectangle(b3, rect);
四、座標軸轉換
graphics g = this.creategraphics();
//單色填充
//solidbrush b1 = new solidbrush(color.blue);//定義單色畫刷
pen p = new pen(color.blue, 1);
//轉變座標軸角度
for (int i = 0; i < 90; i++)
//平移座標軸
g.translatetransform(100, 100);
g.drawline(p, 0, 0, 100, 0);
g.resettransform();
//先平移到指定座標,然後進行度旋轉
g.translatetransform(100, 200);
for (int i = 0; i < 8; i++)
g.dispose();
五、彩色影象轉換成黑白影象
SIP基本應用
sip基本應用 sip 協議作為 voip 通訊的主要協議之一,以起簡單,靈活,開放性而逐漸在 voip 通訊領域內佔據主導地位。使用 sip通訊的主要方式如下圖,主要裝置有 sip終端,定向伺服器,位置伺服器,pstn 閘道器等裝置。sip協議發展的目前,最新標準為 rfc3261 主要的網路裝置...
Sql cursor 基本應用
1 游標格式 declare 游標名稱 cursor for select 欄位1,欄位2,欄位3,from 表名 where open 游標名稱 fetch next from 游標名稱 into 變數名1,變數名2,變數名3,while fetch status 0 begin sql語句執行過...
nutz dao基本應用
詳情見 自己常用的方法 dao.insert object 該方法和new 乙個普通物件不同的是返回乙個帶主鍵的物件,在資料庫中主鍵是自增的,所以每次插入都是插入max id 處 dao.fastinsert object 則是普通插入,用於乙個迴圈多次插入,即覆蓋乙個事務 dao.query cl...