日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網營銷解決方案
詳細介紹C#GDI+

關于C# GDI+

十余年的東豐網站建設經驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。營銷型網站建設的優(yōu)勢是能夠根據用戶設備顯示端的尺寸不同,自動調整東豐建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“東豐網站設計”,“東豐網站推廣”以來,每個客戶項目都認真落實執(zhí)行。

從本質上來看,GDI+為開發(fā)者提供了一組實現(xiàn)與各種設備(例如監(jiān)視器,打印機及其它具有圖形化能力但不及涉及這些圖形細節(jié)的設備)進行交互的庫函數(shù)。 GDI+的本質在于,它能夠替代開發(fā)人員實現(xiàn)與例如顯示器及其它外設的交互;而從開發(fā)者角度來看,要實現(xiàn)與這些設備的直接交互卻是一項艱巨的任務。

下圖1展示了C# GDI+在開發(fā)人員與上述設備之間起著重要的中介作用。其中,GDI+為我們“包辦”了幾乎一切—從把一個簡單的字符串“HelloWorld”打印到控制臺到繪制直線,矩形甚至是打印一個完整的表單等。

圖1.GDI+擔當著重要的中介作用

那么,GDI+是如何工作的呢?為了弄清這個問題,讓我們來分析一個示例—繪制一條線段。實質上,一條線段就是一個從一個開始位置(X0,Y0)到一個結束位置(Xn,Yn)的一系列像素點的集合。為了畫出這樣的一條線段,設備(在本例中指顯示器)需要知道相應的設備坐標或物理坐標。

然而,開發(fā)人員不是直接告訴該設備,而是調用GDI+的drawLine()方法,然后,由GDI+在內存(即“視頻內存”)中繪制一條從點A到點B的直線。C# GDI+讀取點A和點B的位置,然后把它們轉換成一個像素序列,并且指令監(jiān)視器顯示該像素序列。簡言之,GDI+把設備獨立的調用轉換成了一個設備可理解的形式;或者實現(xiàn)相反方向的轉換。

至此,我們已經簡單了解了C# GDI+的工作機理?,F(xiàn)在,讓我們開始探討如何實現(xiàn)一些基本的圖像操作。

圖像操作—縮略圖,縮放與保存

在本文示例中,我們將實現(xiàn)如下的任務:

1. 創(chuàng)建縮略圖。

2. 縮放一個加載的圖像。

3. 保存一個操作中的圖像。

1) 創(chuàng)建縮略圖

縮略圖是圖像的濃縮版本。典型情況下,一幅縮略圖圖像的尺寸為80×200像素。在GDI+中,一個圖像的縮略圖可以通過使用Image類的GetThumbnailImage()方法來創(chuàng)建。其函數(shù)原型如下:

 
 
 
 
  1. public Image GetThumbnailImage {  
  2. int thumbWidth,  
  3. int thumbHeight,  
  4. GetThumbnailImageAbort callback,  
  5. IntPtr callbackData  

第一個參數(shù)相應于縮略圖的寬度;第二個參數(shù)相應于生成的縮略圖的高度;第三個參數(shù)是一個Image.GetThumbnailImageAbort 委托。在 GDI+ 1.0 版中不使用此委托。即便如此,也必須創(chuàng)建一個委托并在該參數(shù)中傳遞對此委托的引用。第四個參數(shù)同樣沒有使用,但是也需要提供以實現(xiàn)兼容性。注意,第四個參數(shù)必須為IntPtr.Zero。

如果前兩個參數(shù)(也就是寬度和高度)都為0的話,那么,C# GDI+返回一個嵌入式縮略圖。否則,使用系統(tǒng)定義尺寸創(chuàng)建該縮略圖。例如,如果img是一個圖像類的實例,并且使用的寬度和高度都是系統(tǒng)定義的,創(chuàng)建一個縮略圖的語句應該如下所示:

 
 
 
 
  1. Image thumbNailImage = img.GetThumbnailImage(0,0,tnCallBack,IntPtr.Zero); 

在此,thumbNailImage包含返回的縮略圖,而tnCallback是一個相應于Image.GetThumbnailImageAbort的函數(shù),其定義如下:

 
 
 
 
  1. //必須調用它,但是沒有使用   
  2. style='font-size:10.0pt;font-family:Verdana'>publicbool tnCallbackMethod()  
  3. ...  
  4. {  
  5. return false;  

2) 縮放一個加載的圖像

縮放是放大或縮小一個圖像的過程—通過在圖像尺寸上乘以縮放因子實現(xiàn)。其中,縮放因子=期望的圖像尺寸/當前圖像尺寸。例如,要把一個圖像放大200%,則當前尺寸必須乘以200%(200%=200/100=2);為了縮小一個圖像到25%,則當前尺寸必須乘以25%或0.25(25/100=0.25 倍)。

3) 保存圖像

保存操作是圖像操作中的關鍵操作之一。在保存一個圖像時,圖像相應的類型信息也必須進行保存;也就是說,該圖像的擴展名在這一過程中具有重要角色。每一種類型相應于一個特定的格式。實質上,在保存一個圖像時,根據該格式輸出數(shù)據是非常必要的。然而,借助于GDI+ API的優(yōu)勢,一個對Image類的Save()方法的簡單調用就可以把相應的寫數(shù)據操作中所有細節(jié)省略掉。這個方法使用兩個參數(shù)—被保存的圖像的名字和待保存圖像的格式。該格式能夠通過ImageFormat類提供的類型來指定。下列表格指定了C# GDI+支持的各種圖像格式。屬性描述
◆Bmp 指定BMP格式。
◆Emf 指定EMF(增強的元文件格式)。
◆Exif指定EXIF格式。
◆Gif 指定GIF格式。
◆Guid指定一個GUID結構,用于描述ImageFormatobject。
◆Icon指定Windows圖標格式。
◆Jpeg指定JPEG格式。
◆MemoryBmp   指定內存位圖格式。
◆Png 指定PNG格式。
◆Tiff指定TIFF格式。
◆Wmf 指定WMF(Windows元文件格式)。

其中,Emf和Wmf是特定于Windows系統(tǒng)的。

假定你想使用名字“checker.gif”保存一個圖像,那么,相應的實現(xiàn)語句將是:

 
 
 
 
  1. curImage.Save(“checker.gif”,ImageFormat.Gif);  

這里,curImage對應于Image類的實例。

在下一節(jié)中,我將對前面開發(fā)的這個應用程序進行擴展。


名稱欄目:詳細介紹C#GDI+
URL網址:http://m.5511xx.com/article/dhsicic.html