??????前言: 本文章抄襲自本人剛剛買(mǎi)的《ASP.NET 3.5從入門(mén)到精通》這本書(shū),此書(shū)介紹在 http://www.china-pub.com/44991 ?,本文章95%與此書(shū)的內(nèi)容完全一樣,另5%是我改正一些失誤以后加上去的,該書(shū)原示例代碼只能運(yùn)行在IE核心的瀏覽器上,非IE核心瀏覽器上運(yùn)行會(huì)出現(xiàn)些顯示問(wèn)題,本人更改了其中的一些代碼。本文章經(jīng)歷昨晚本人五個(gè)小時(shí)的手打而成(且還未打完,下班回去繼續(xù)打,想不到我的打字速度退化得這么快,郁悶!!!),俗話(huà)說(shuō):好記性不如爛筆頭,把書(shū)的內(nèi)容手打出來(lái),對(duì)手,對(duì)腦,都有好處!!!
10.2.4 Brush
?
?
Brush 通常被稱(chēng)為,用于定義填充圖形形狀(如矩形、橢圓、餅形、多邊形和封閉路徑)的內(nèi)部對(duì)象。 Brush 是一個(gè)抽象基類(lèi),不能進(jìn)行實(shí)例化。若要?jiǎng)?chuàng)建一個(gè)畫(huà)筆對(duì)象,需使用從 Brush 派生出的類(lèi),如 SolidBrush 、 TextureBrush 和 LinearGradientBrush 。
?
?
SolidBrush 類(lèi)用于定義單色畫(huà)筆。畫(huà)筆用于填充圖形形狀,如矩形、橢圓、扇形、多邊形和封閉路徑。下表列舉了常用的方法和屬性。
System.Drawing.Brushes 定義了很多標(biāo)準(zhǔn)筆刷,用戶(hù)可以直接定義一個(gè)藍(lán)色筆刷。
?
?
System.Drawing.Brush brush = System.Drawing.Brushes.Blue;?
?
?
當(dāng)然,用戶(hù)也可以自定義畫(huà)筆。
?
?
// 定義一個(gè)紅色筆刷 System.Drawing.Brush brush = new System.Drawing.SolidBrush(System.Drawing.Color.Red);?
?
TextureBrush 類(lèi)的每個(gè)屬性都是 Brush 對(duì)象,這種對(duì)象使用圖像來(lái)填充形狀的內(nèi)部,用戶(hù)可以設(shè)置填充的方式。下表例舉了常的方法和屬性。
?
?
?
?
下面的代碼示例演示了用圖形填充區(qū)域的用法。
?
?
// Brush圖片 string brushfile = Server.MapPath("~/logo.gif"); // 被填充的圖片 string file = Server.MapPath("~/Element.jpg"); // 聲明TextureBrush對(duì)象 System.Drawing.Image brushimg = System.Drawing.Image.FromFile(brushfile); System.Drawing.TextureBrush texture = new System.Drawing.TextureBrush(brushimg); texture.WrapMode = System.Drawing.Drawing2D.WrapMode.Tile; System.Drawing.Image img = System.Drawing.Image.FromFile(file); System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(img); // 創(chuàng)建Graphics對(duì)象 g.FillEllipse(texture, new System.Drawing.RectangleF(90.0f,110.0f,100,100)); // 用圖形填充 g.Dispose(); // 原書(shū)中沒(méi)有這句,這里要加上這句,如果不加這句則在非IE瀏覽器顯示不出 Response.ContentType = "image/JPEG"; // 將圖形加載到Response中 img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);?
?
?
網(wǎng)頁(yè)運(yùn)行結(jié)果如圖:
?
?
?
?
10.2.5 Font
?
?
Font 用于定義特定的文本格式,包括字體、字號(hào)和字形屬性。
?
?
下表列舉了常用方法和屬性。
?
?
?
下面這行代碼將構(gòu)建一個(gè) 10 磅大小的宋體字體。
?
?
System.Drawing.Font f1 = new System.Drawing.Font( " 宋體 " , 10 );?
?
10.2.6 Image
?
?
Image 是為源自 Bitmap 和 Metafile 的類(lèi)提供功能的抽象基類(lèi)。下表列舉了常用的方法和屬性。
?
?
?
Image 不可以實(shí)例化,但可以通過(guò)方法來(lái)構(gòu)造:
?
?
System.Drawing.Image img1 = System.Drawing.Image.FromFile(Server.MapPath( " ~/logo.gif " ));?
?
Image 是基類(lèi),封裝了很多有用的屬性和方法,而實(shí)際運(yùn)用時(shí),尤其在生成或者修改圖像的時(shí)候,一般用其派生類(lèi) Bitmap 表示內(nèi)存中的圖形。 Bitmap 是用于處理由像素?cái)?shù)據(jù)定義的圖像的對(duì)象,是圖像處理開(kāi)發(fā)中最常用的對(duì)象。用戶(hù)可以通過(guò)多種途徑構(gòu)造 Bitmap 對(duì)象。
?
?
System.Drawing.Bitmap bmp1 = new System.Drawing.Bitmap(Server.MapPath( " ~/logo.gif " )); // 通過(guò)文件構(gòu)造 System.Drawing.Bitmap bmp2 = new System.Drawing.Bitmap( 300 , 200 ); // 構(gòu)造一個(gè)寬300,高200的對(duì)象?
構(gòu)造完對(duì)象后,可以調(diào)用其方法進(jìn)行操作,比如 RotateFlip 方法可以實(shí)現(xiàn)圖像反轉(zhuǎn),該方法接收 RotateFlipType 類(lèi)型的參數(shù),可以的值如下表。
?
?
?
比如:
?
?
?
?
System.Drawing.Bitmap bmp1 = new System.Drawing.Bitmap(Server.MapPath("~/logo.gif")); // 通過(guò)文件構(gòu)造 bmp1.RotateFlip(System.Drawing.RotateFlipType.Rotate90FlipX); // 水平翻轉(zhuǎn)90度旋轉(zhuǎn) // 原書(shū)中沒(méi)有這句,這里要加上這句,如果不加這句則在非IE瀏覽器顯示不出 Response.ContentType = "image/JPEG"; bmp1.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);?
網(wǎng)頁(yè)運(yùn)行如圖:
?
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
