亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

.NET3.5 GDI+ 圖形操作5

系統(tǒng) 1560 0

??????前言: 本文章抄襲自本人剛剛買的《ASP.NET 3.5從入門到精通》這本書,此書介紹在 http://www.china-pub.com/44991 ?,本文章95%與此書的內(nèi)容完全一樣,另5%是我改正一些失誤以后加上去的,該書原示例代碼只能運(yùn)行在IE核心的瀏覽器上,非IE核心瀏覽器上運(yùn)行會(huì)出現(xiàn)些顯示問題,本人更改了其中的一些代碼。本文章經(jīng)歷昨晚本人五個(gè)小時(shí)的手打而成(且還未打完,下班回去繼續(xù)打,想不到我的打字速度退化得這么快,郁悶!!!),俗話說:好記性不如爛筆頭,把書的內(nèi)容手打出來,對(duì)手,對(duì)腦,都有好處!!!


10.3.3 繪制簡單圖形

?

?

簡單圖形是組成復(fù)雜圖形的基礎(chǔ),通過本小節(jié)的例子,讀者可以掌握繪制復(fù)雜圖形的基礎(chǔ)。

?

?

除了直線外,矩形是所有簡單圖形的基礎(chǔ)。因?yàn)樵? Windows 操作系統(tǒng)中,大部分圖形在內(nèi)存中的表示都是矩形塊,比如一個(gè)窗體、一個(gè)按鈕控件等。即使是圓形的界面元素,在表示其位置時(shí),仍然以所在矩形的左上角坐標(biāo)為參照點(diǎn),通過寬和高來框定其位置及其區(qū)域。

?

?

那么如何繪制矩形? Graphics 中的 DrawRectangle 可以在規(guī)定一個(gè)左上角頂點(diǎn)和長寬邊長的情況下繪制一個(gè)矩形。下面的代碼實(shí)現(xiàn)生成一個(gè) 400*300 的圖片,并畫出一個(gè)矩形。

?

?

    Pen pen = new Pen(Color.Red); // 創(chuàng)建一支紅筆
Bitmap bmp = new Bitmap(400,300);
Graphics g = Graphics.FromImage(bmp);
// 以[50,50]為左上角,以長300,寬200繪制矩形
g.DrawRectangle(pen,new Rectangle(50,50,300,200));
pen.Dispose();
g.Dispose();
// 存為新圖片
bmp.Save(Server.MapPath("~/aa.jpg"));
bmp.Dispose();
  
?

?

運(yùn)行后,查看 aa.jpg 的效果如圖。

?

?

?

?

.NET3.5 GDI+ 圖形操作5

?

如何繪制圓形呢? Graphics 中的 DrawDllipse 可以在一個(gè)矩形范圍內(nèi)繪制橢圓,當(dāng)把矩形設(shè)置為正方形時(shí),就能畫成為正圓,代碼如下所示:

?

?

    Pen pen = new Pen(Color.Red); // 創(chuàng)建一支紅筆
Bitmap bmp = new Bitmap(400,400);
Graphics g = Graphics.FromImage(bmp);
// 以[50,50]為左上角,以長300,寬300的矩形內(nèi)繪制圓
g.DrawEllipse(pen, new Rectangle(50,50,300,300));
pen.Dispose();
g.Dispose();
// 存為新圖片
bmp.Save(Server.MapPath("~/bb.jpg"));
bmp.Dispose();
  
?

運(yùn)行后,查看 bb.jpg 的效果如下圖。

?

?

?

.NET3.5 GDI+ 圖形操作5

?

10.3.4 繪制文本

?

?

有時(shí)用戶需要在圖片上顯示文字, Graphics 中的 DrawString 可以在圖形上繪制文字,其中可以指定坐標(biāo)、字體、字號(hào)等信息。下面的代碼簡單地在圖片上寫了幾個(gè)漢字。

?

?

    Bitmap bmp = new Bitmap(200, 100);
Graphics g = Graphics.FromImage(bmp);
string str = "畫在圖片上的文字";
Font font = new Font("宋體", 10);
// 黑色筆刷
SolidBrush brush = new SolidBrush(Color.Black);
g.DrawString(str, font, brush, 50, 50); // 從[50,50]位置開始寫字
font.Dispose();
brush.Dispose();
g.Dispose();
// 存為新圖片
bmp.Save(Server.MapPath("~/text.jpg"));
bmp.Dispose();
  
?

運(yùn)行后, text.jpg 的效果如下圖所示。

?

.NET3.5 GDI+ 圖形操作5

?


???????? 注意 :使用 GDI+ 畫上去的文字是二進(jìn)制信息,無法作為文本復(fù)制粘貼

?

?


?

10.3.5 填充圖形

?

?

前面的簡單圖形基本只有邊界,內(nèi)部區(qū)域是空心的。如果想繪制一個(gè)實(shí)心圖形,可以使用 Graphics 中的 FillXXX 方法,并使用刷子( Brush 對(duì)象)填充。

?

?

下面的代碼示例實(shí)現(xiàn)用藍(lán)色填充一個(gè)圓形區(qū)域。

?

?

    Bitmap bmp = new Bitmap(300, 300);
Graphics g = Graphics.FromImage(bmp);
// 藍(lán)色筆刷
SolidBrush brush = new SolidBrush(Color.Blue);
g.FillEllipse(brush, new Rectangle(5,5,250,250));
brush.Dispose();
g.Dispose();
// 存為新圖片
bmp.Save(Server.MapPath("~/fill.jpg"));
bmp.Dispose();
  
?

?

運(yùn)行后,查看 fill.jpg 的效果如圖。

?

?

?

?

.NET3.5 GDI+ 圖形操作5

?

由此可見,利用 Fill 操作可以很方便地填充圖形,如果需要使邊界實(shí)出顯示,可以再用 Draw 方法將邊界繪制出來。

?

?

?

.NET3.5 GDI+ 圖形操作5


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产91九色在线播放 | 人人做天天爱夜夜爽中字 | 最新久久精品 | 亚洲二区在线视频 | 一区二区三区欧美日韩国产 | 天天爽天天干天天操 | 国产成人亚洲综合91精品555 | 日本一区二区三区免费高清在线 | 99国产热 | 欧美经典人人爽人人爽人人片 | 亚洲精品综合一区二区 | 四虎影院精品 | 国产欧美另类久久久品 | 玖玖影院在线观看 | 色婷婷久久合月综 | 亚洲欧美久久精品1区2区 | 国产在线精品观看一区 | 秋霞在线观看成人高清视频51 | 一区二区三区成人 | 久久久国产成人精品 | 精品一区二区乱码久久乱码 | 99re热视频在线 | 婷婷综合五月 | 国产精品久久久久久久网站 | 亚洲综合一区二区精品久久 | 麻豆精品国产免费观看 | 日日夜夜爽 | 中文字幕一区二区三区精品 | 日本成本人观看免费视频fc2 | 久久中文字幕在线 | 98精品国产综合久久 | 国产成人91高清精品免费 | 夜夜爽天天狠狠九月婷婷 | 日本免费一区二区三区毛片 | 久久精品视频1 | 综合亚洲色图 | 国产精品18久久久久网站 | 亚洲成人高清在线 | 色婷婷视频在线观看 | 欧美日韩黄色 | 国产私拍 |