CGI 基本應用

2021-06-07 19:28:57 字數 3253 閱讀 1148

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...