




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第五篇ASP.NET高級編程,東鵬電子信息有限公司,2,內(nèi)容,第 15 章 圖形圖像編程 第 16 章 ASP.NET 和 AJAX 第 17 章 ASP.NET MVC 基礎,3,第 15 章 圖形圖像編程,主講:Jayce_Zou,4,本章內(nèi)容 主講:Jayce_Zou,圖形編程 繪制文字特效 繪制圖片 圖像特效處理,5,圖像布局 主講:Jayce_Zou,在頁面布局中,很多設計人員喜歡使用 CSS 設計,這樣能夠簡化頁面代碼,將頁面布局代碼和頁面代碼相分離,從而提高了維護性。 雖然隨著技術(shù)的發(fā)展,越來越多的動態(tài)生成頁面布局,以及動態(tài)生成圖像的方法也越來越多的被開發(fā)人員和設計人員所認知,但
2、是開發(fā)人員和設計人員還是比較喜歡使用 CSS 和 IMG 標簽進行頁面布局,這是因為 CSS 和 IMG 標簽都比較簡單,可以說是“輕量級”的,即不需要頁面進行邏輯處理也不需要動態(tài)生成。,6,IMG 標簽 主講:Jayce_Zou,IMG 標簽是圖像標簽,IMG 標簽屬于 HTML 控件,在 Web 應用中可以看到在頁面中包含大量的 IMG標簽用于圖形圖像顯示,示例代碼如下所示: 使用 IMG 標簽能夠輕松的為網(wǎng)頁添加圖片,IMG 標簽包括以下常用屬性: Src:圖片的地址,可以是圖片的相對地址也可以是絕對地址。 Width:設定圖片的寬度。 Height:設定圖片的高度。 Alt:當圖片顯示
3、不了時提示的字符。 Border:圖片的邊框的寬度。 Align:圖片的周片文字的對齊方式。 Title:當鼠標放在圖片上出現(xiàn)的提示字符。,7,CSS 主講:Jayce_Zou,通過 CSS 能夠使用圖像進行頁面布局和樣式控制。當需要使背景呈現(xiàn)漸變效果時,無需使用 JavaScript進行控制,可以直接使用 CSS 和圖像進行搭配使用即可。CSS 背景屬性包括: 背景顏色屬性(background-color):該屬性為 HTML 元素設定背景顏色。 背景圖片屬性(background-image):該屬性為 HTML 元素設定背景圖片。 背景重復屬性(background-repeat):該
4、屬性和 background-image 屬性連在一起使用,決定背景圖片是否重復。如果只設置 background-image 屬性,沒設置 background-repeat 屬性,在缺省狀態(tài)下,圖片既 x 軸重復,又 y 軸重復。 背景附著屬性(background-attachment):該屬性和 background-image 屬性連在一起使用,決定圖 片是跟隨內(nèi)容滾動,還是固定不動。 背景位置屬性(background-position):該屬性和 background-image 屬性連在一起使用,決定了背景圖片的最初位置。 背景屬性(background):該屬性是設置背景相關(guān)
5、屬性的一種快捷的綜合寫法。,8,JavaScript 進行圖像編程 主講:Jayce_Zou,HTML 圖像控件支持 JavaScript 進行圖像操作,可以為圖像控件進行事件處理,JavaScript 代碼如下所示: function cut() /獲取 ID 為 pic1 的圖片的屬性 var pic=document.getElementById(“pic1”) pic.width=100; /設置圖片的寬度 pic.height=100; /設置圖片的高度 上述代碼獲取圖片ID 為pic1 的圖片屬性,當觸發(fā)該事件后,ID 為 pic1 的圖片的寬度和高度將變?yōu)?100。 為了讓圖片被
6、單擊時觸發(fā)該事件,則應該在 IMG 標簽中聲明該事件,代碼如下所示: ,9,GDI+簡介 主講:Jayce_Zou,雖然通過 IMG 標簽和 CSS、JavaScript 相配合能夠進行圖形圖像開發(fā),但是其功能有限,并不能夠進行高級的圖形圖像開發(fā)。 GDI+是 Windows XP 中的一個子系統(tǒng),它主要負責在顯示屏幕和打印設備輸出有關(guān)信息,它是一組通過C+類實現(xiàn)的應用程序編程接口。 GDI+的前身是 GDI,在 C+應用程序開發(fā)中,C+開發(fā)人員經(jīng)常需要使用 GDI 進行窗口的繪制與重繪,在 Vista 操作系統(tǒng)之后的操作系統(tǒng)中,微軟對圖形圖像編程進行了更新. 在 Vista 等系統(tǒng)中,大量的
7、使用了半透明、漸變、邊緣模糊化等效果,這就要求在編程中強化圖形圖像渲染。,10,主講:Jayce_Zou,GDI+相比與 GDI,進行了一些加強, 這些加強功能如下所示: 漸變的畫刷(Gradient Brushes):GDI+允許開發(fā)人員使用漸變的畫刷來繪制線條、圖形以及外觀。 基數(shù)樣條函數(shù)(Cardinal Splines):GDI+支持基數(shù)樣條函數(shù)而 GDI 不支持,基數(shù)樣條能夠防止鋸齒的出現(xiàn),使得窗口以及圖形的繪制能夠平滑過渡。 持久路徑對象(Persistent Path Objects):在 GDI 中,繪制路徑在窗口更改需要通過重繪來保持圖形的持久化,而在 GDI+中,可以通過創(chuàng)
8、建對個對象來持久化。 變形和矩陣對象(Transformations Matrix Object):GDI+提供了強大的矩陣對象,開發(fā)人員可以通過矩陣對象進行圖形的翻轉(zhuǎn)、平移和縮放。 可伸縮區(qū)域(Scalable Regions):GDI+允許在一定的范圍內(nèi)進行任何圖形變換。 GDI+不僅包括這些新特性,還包括混合以及等多種圖像類型支持等特性。ASP.NET 相對于 ASP 的強大之處就在于 ASP.NET 可以使用 GDI+進行圖形圖像編程,實現(xiàn)不同的 Web 應用功能。,11,.NET Framework 繪圖類 主講:Jayce_Zou,GDI+包括很多的類、結(jié)構(gòu)和枚舉用于為開發(fā)人員提供
9、圖形編程,這些類、結(jié)構(gòu)和枚舉都定義在命名空間中,這些命名控件如下所示: System.Drawing:提供對 GDI+基本圖形圖像功能的訪問,提供了 Graphics 類進行圖形圖像處理。 System.Drawing.Drawing2D :提供了高級的二維圖形和矢量圖形的處理功能,使用 System.Drawing.Drawing2D 能夠進行二維圖形和二維游戲的開發(fā)和編寫。 System.Drawing.Imaging:主要提供了圖像處理的功能,例如將圖像進行銳化處理,或者將圖像 變成黑白色或底片都可以通過使用該命名空間的方法。 System.Drawing.Text:提供高級的文字處理及
10、排版功能,能夠?qū)崿F(xiàn) Word 中藝術(shù)字的效果。 System.Drawing.Printing:提供圖形打印所需要的類。 System.Drawing.Design:提供開發(fā) UI 設計時所需要的類。,12,類和方法 主講:Jayce_Zou,System.Drawing 命名空間提供的類如下所示: Bitmap:在 Bitmap 上使用圖形工具,并在其中存儲圖形圖像的繪圖面板。 Graphics:提供直線、曲線、多邊形等繪畫方法,也提供對一些位圖的處理,例如平移、縮放等。 Pen:提供直線、曲線等功能需要的畫筆屬性。 Brush:提供文本填充和圖形繪畫,可以填充圖形如圓形、橢圓形和多邊形。
11、Color:提供顏色的枚舉,用于定義 Pen 和 Brush 的顏色。 Font:提供文本的字體屬性,定義文本的字體類型、樣式和大小等。 Point:用于定義有序的坐標對,這些坐標能夠定義二維平面上的點。 Size:定義區(qū)域的大小。 Image:用于支持位圖、指針和圖標等文件類型。 Rectangle:用于定義矩形區(qū)域。 StringFormat:用于定義文本在位圖上的對齊方式等屬性。,13,主講:Jayce_Zou,簡而言之,Bitmap 就相當于繪畫時需要的紙,圖形能夠繪畫到紙上面。 而 Graphics 相當于繪畫的人, 因為人能夠提供只寫、曲線、多邊形等繪畫方法。 而 Pen 和 Br
12、ush 相當于繪畫工具,如鉛筆、筆刷等。 Color 就相當于是繪畫所需要的顏料。 在繪畫過程中: 首先需要使用一張紙,固定到繪畫板上, 然后有一個人能夠進行繪畫,這個人能夠進行素描、水彩等繪畫。 但是在繪畫前,需要給這個人基本的工具,包括鉛筆、筆刷和顏料盤等。 在這些基 本物質(zhì)準備完畢后,就能夠開始繪制了。,14,Graphics 類的屬性 主講:Jayce_Zou,DpiX:獲取對象的水平分辨率。 DpiY:獲取對象的垂直分辨率。 IsClipEmpty:為對象指定裁剪區(qū)域。 IsVisibleClipEmpty;判斷裁剪區(qū)域是否為空。 TextGammaValue:返回一個提供文本灰度值
13、的信息的整數(shù)值。 TextRenderingHint:獲取或設置與該圖形相關(guān)聯(lián)的文本著色模式。 通過 Graphics 類的屬性能夠獲取 Graphics 對象的水平分辨率和垂直分辨率,并能夠為 Graphics 對象進行裁剪區(qū)域的選擇和判斷。,15,Graphics 類的方法 主講:Jayce_Zou,Dispose:刪除圖形并釋放已分配的內(nèi)存。 DrawArc:繪制弧線。 DrawBezier:繪制后三次貝塞爾曲線。 DrawClosedCurve:繪制封閉曲線。 DrawCurve:繪制曲線。 DrawEllipse:繪制橢圓。 DrawIcon:繪制圖標圖像。 DrawIconUnst
14、retched:繪制圖標圖像,并可將圖像縮放到指定大小。 DrawImage:繪制圖像。 DrawImageUnscaled:繪制圖像,并可將圖像縮放到指定大小。 DrawImageUnscaledAndClipped:在不進行縮放的情況下進行圖像繪制。,16,主講:Jayce_Zou,DrawLine:繪制線條。 DrawPie:繪制扇形。 DrawPolygon:繪制多邊形。 DrawRectangle:繪制矩形。 DrawString:繪制字符串。 FillClosedCurve:填充封閉曲線的內(nèi)部區(qū)域。 FillEllipse:填充橢圓內(nèi)部。 FillPath:填充 GraphicsP
15、ath 內(nèi)部。 FillPie:填充扇形內(nèi)部。 Restore:恢復圖形狀態(tài)。 Save:保存圖形。 SetClip:為對象設置剪輯區(qū)域。,17,繪制線條 主講:Jayce_Zou,示例代碼如下所示: Bitmap images = new Bitmap(200, 200); /創(chuàng)建畫紙 Graphics gr = Graphics.FromImage(images); Pen pen = new Pen(Color.Red, 5); /創(chuàng)建畫筆 gr.Clear(Color.White); /設置畫筆的顏色 gr.DrawLine(pen, 0, 0, 200, 200); /開始繪畫 im
16、ages.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); gr.Dispose(); /釋放繪圖對象 images.Dispose(); /釋放圖形對象,18,繪制矩形 主講:Jayce_Zou,繪制矩形的方法同繪制線條基本相同,但是繪制矩形不僅要指定矩形的坐標,還需要指定矩形的高度和寬度,示例代碼如下所示: Bitmap images = new Bitmap(400, 400); /創(chuàng)建畫紙 Graphics gr = Graphics.FromImage(images); Pen pen = ne
17、w Pen(Color.Red, 5); /創(chuàng)建畫筆 gr.Clear(Color.White); /設置畫筆顏色 gr.DrawLine(pen, 0, 0, 200, 200); /繪制線條 gr.DrawRectangle(pen, 200, 200, 50, 50); /繪制矩形 images.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); gr.Dispose(); images.Dispose();,19,繪制橢圓 主講:Jayce_Zou,繪制橢圓的方法只需要使用 DrawEllipse
18、方法即可,示例代碼如下所示: gr.DrawEllipse(pen, 0, 0, 300, 200); /繪制橢圓 上述代碼繪制了一個橢圓形,該橢圓形繪制的起點為(0,0),寬度為 300,高度為 200。 DrawEllipse方法同 DrawRectangle 方法基本相同,因為這兩個方法都包括五個參數(shù),這 5 個參數(shù)都需要指定繪制起點、 寬度和高度。當需要繪制圓形時,只需要將寬度和高度設置相等即可,示例代碼如下所示: gr.DrawEllipse(pen, 0, 0, 200, 200); /繪制圓 當設置寬度和高度相等時,該橢圓就會以圓形呈現(xiàn),上述代碼就實現(xiàn)了圓形的繪制。,20,繪制多
19、邊形 主講:Jayce_Zou,繪制多邊形的方法只需要使用 DrawPolygon 方法即可,與繪制規(guī)則圖形不同的是,繪制多邊形需要指定多邊形的各個節(jié)點,DrawPolygon 方法通過獲取這些節(jié)點即可組成一個多邊形,示例代碼如下所示: Point pt1 = new Point(50, 50); /設置節(jié)點 Point pt2 = new Point(150, 150); /設置節(jié)點 Point pt3 = new Point(200, 200); /設置節(jié)點 Point pt4 = new Point(350, 170); /設置節(jié)點 Point pt5 = new Point(90, 3
20、0); /設置節(jié)點 Point pt6 = new Point(180, 90); /設置節(jié)點 Point pts = pt1, pt2, pt3, pt4, pt5, pt6 ; /設置節(jié)點組 gr.DrawPolygon(pen, pts); /繪制多邊形,21,繪制文字 主講:Jayce_Zou,通過使用 DrawString 方法能夠繪制文字并呈現(xiàn)在圖像中,示例代碼如下所示: Font font = new Font(“宋體”, 20); /創(chuàng)建文字對象 Brush brush=new SolidBrush(Color.Red); /創(chuàng)建筆刷對象 gr.DrawString(我的字符串
21、, font, brush, 200,200); /繪制文字 使用 DrawString 方法,需要對 DrawString 方法進行參數(shù)傳遞,DrawString 方法需要五個參數(shù),其中包括需要輸出的字符串、文本格式對象、筆刷對象以及文字開始繪制的坐標。 上述代碼中,輸出字串為“我的字符串”。文本格式通過 Font 默認構(gòu)造函數(shù)構(gòu)造,并在坐標為(200,200)位置開始繪制。,22,圖形繪制實例 主講:Jayce_Zou,protected void Page_Load(object sender, EventArgs e) Bitmap images = new Bitmap(400, 4
22、00); /創(chuàng)建畫紙 Graphics gr = Graphics.FromImage(images); /創(chuàng)建繪圖類 Pen pen = new Pen(Color.Red, 5); /創(chuàng)建畫筆 gr.Clear(Color.White); /繪制直線 gr.DrawLine(pen, 0, 0, 200, 200); /繪制矩形 gr.DrawRectangle(pen, 200, 200, 50, 50); /繪制橢圓 gr.DrawEllipse(pen, 0, 0, 300, 200); /繪制多邊形 Point pt1 = new Point(50, 50); /設置節(jié)點 Poin
23、t pt2 = new Point(150, 150); /設置節(jié)點 Point pt3 = new Point(200, 200); /設置節(jié)點 Point pt4 = new Point(350, 170); /設置節(jié)點 Point pt5 = new Point(90, 30); /設置節(jié)點 Point pt6 = new Point(180, 90); /設置節(jié)點 gr.DrawPolygon(pen, pts); /繪制文字,23,主講:Jayce_Zou,Font font = new Font(宋體, 20); /設置字體大小 Brush brush=new SolidBrush
24、(Color.Red); /創(chuàng)建紅色筆刷 gr.DrawString(我的字符串, font, brush, 200,200); /填充矩形 SolidBrush brush2 = new SolidBrush(Color.YellowGreen); /填充矩形 gr.FillRectangle(brush2,new Rectangle(100,100,100,100); images.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg); gr.Dispose(); images.Dispose(); ,24
25、,投影特效 主講:Jayce_Zou,使用 System.Drawing.Drawing2D 和 System.Drawing.Text 能夠進行文字投影特效。 在制作文字投影特效前,首先需要使用命名空間 System.Drawing.Drawing2D 和 System.Drawing.Text。 在實現(xiàn)投影效果前,首先需要了解如何制作投影。 投影特效的難度在于如何描述本體的影子。 其實在畫面上,影子是不可能像平常的描述一樣呈現(xiàn)在圖片上的,這也就是說,影子其實也是本體對象的另一種表現(xiàn)形式。 首先,影子可以看作是本體的壓縮和平移,在對本體進行壓縮和平移后,從一定的角度上看就好像是本地的影子。
26、其次,影子是沒有顏色的,通常用灰色輸出即可實現(xiàn)影子的效果。 在制作投影特效時,需要使用到 Matrix 類,該類需要使用 System.Drawing.Drawing2D 和 System.Drawing.Text 命名空間。,25,示例代碼 主講:Jayce_Zou,Bitmap images = new Bitmap(600, 150); /創(chuàng)建 Bitmap 對象 Graphics gr= Graphics.FromImage(images); /創(chuàng)建 Graphics 對象 gr.Clear(Color.WhiteSmoke); /填充背景顏色 /設置文本輸出質(zhì)量 gr.TextRen
27、deringHint = TextRenderingHint.ClearTypeGridFit; gr.SmoothingMode = SmoothingMode.AntiAlias; Font newFont = new Font(宋體, 32); Matrix matrix = new Matrix(); /執(zhí)行投射 matrix.Shear(-1.5f, 0.0f); /執(zhí)行縮放 matrix.Scale(1, 0.5f); /執(zhí)行平移 matrix.Translate(130, 88); /執(zhí)行坐標轉(zhuǎn)換 gr.Transform = matrix;,26,主講:Jayce_Zou,So
28、lidBrush grayBrush = new SolidBrush(Color.Gray); SolidBrush colorBrush = new SolidBrush(Color.Red); string text = ASP.NET 3.5 開發(fā)大全; /設置文字 /繪制陰影 gr.DrawString(text, newFont, grayBrush, new Point(0, 30); gr.ResetTransform(); /圖形變形 /繪制前景 gr.DrawString(text, newFont, colorBrush, new PointF(0, 40); image
29、s.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);,27,主講:Jayce_Zou,Matrix類中常用的方法有: Shear:通過預先計算比例向量,將指定的比例向量應用到此矩陣。 Scale:通過預先計算切變向量將指定的切變向量應用到此矩陣。 Translate:通過預先計算轉(zhuǎn)換向量,將指定的轉(zhuǎn)換向量應用到此矩陣。 使用 Matrix 類能夠進行對象的投射、縮放以及平移,并通過執(zhí)行坐標轉(zhuǎn)換呈現(xiàn)在圖片中。 作為投影特效,Matrix 類通過將現(xiàn)有的對象進行轉(zhuǎn)換、壓縮、平移,并通過 Graphics 對象
30、的 DrawString 方法進行輸出, 使之看上去向文字的投影效果一樣。,28,倒影特效 主講:Jayce_Zou,Brush shadowBrush = Brushes.LightBlue; /創(chuàng)建倒影筆刷 Brush foreBrush = Brushes.Blue; /創(chuàng)建本體筆刷 Font font = new Font(微軟雅黑, Convert.ToInt16(40), FontStyle.Italic); /配置字體 Bitmap images = new Bitmap(600, 150); Graphics gr = Graphics.FromImage(images); /
31、創(chuàng)建 Graphice gr.Clear(Color.WhiteSmoke); string text = ASP.NET 3.5 開發(fā)大全; /設置文字 Size size = gr.MeasureString(text, font); /設置矩形大小 int posX = (600 - Convert.ToInt16(size.Width) / 2; /設置平移坐標 int posY = (150 - Convert.ToInt16(size.Height) / 2;/設置平移坐標 gr.TranslateTransform(posX, posY); /執(zhí)行轉(zhuǎn)換 GraphicsState
32、 state = gr.Save(); /圖形保存 gr.ScaleTransform(1, -1.0F); /圖形變換 gr.DrawString(text, font, shadowBrush, 0, -120); /輸出倒影 gr.Restore(state); /圖形重置 gr.DrawString(text, font, foreBrush, 0, 0); /輸出本體 images.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);,29,旋轉(zhuǎn)特效 主講:Jayce_Zou,如果要實現(xiàn)旋轉(zhuǎn)特效,首
33、先需要獲取一段文字,該文字進行通過平移坐標原 點進行變換,當需要實現(xiàn)旋轉(zhuǎn)時,則通過循環(huán)不停的實現(xiàn)旋轉(zhuǎn)平移 : Bitmap images = new Bitmap(400, 400); /創(chuàng)建 Bitmap 對象 Graphics gr = Graphics.FromImage(images); /創(chuàng)建繪圖對象 gr.Clear(Color.WhiteSmoke); /格式化畫布 gr.SmoothingMode = SmoothingMode.AntiAlias; /設置邊緣 for (int i = 0; i = 360; i += 20) /循環(huán)旋轉(zhuǎn) gr.TranslateTransf
34、orm(200, 200); /變形 gr.RotateTransform(i); /按角度變形 Brush brush = Brushes.Red; /創(chuàng)建畫筆 Font font = new Font(微軟雅黑, 12); /創(chuàng)建文字 /繪制文字 gr.DrawString(ASP.NET 3.5 開發(fā)大全 , font, brush, 0, 0); gr.ResetTransform(); /重置變形 images.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);,30,載入圖像文件 主講:Jayc
35、e_Zou,使用 Image 控件能夠載入圖像文件,拖動一個 Image 控件到頁面,頁面會自動生成 HTML 代碼,示例代碼如下所示。 在控件的章節(jié)中,講到 Image 控件包括以下常用屬性: AlternateText:在圖像無法顯示時顯示的備用文本。 ImageAlign:圖像的對齊方式。 ImageUrl:要顯示圖像的 URL。 配置完成后的圖像控件示例代碼如下所示: ,31,GDI+輸出圖像 主講:Jayce_Zou,示例代碼如下所示: protected void Page_Load(object sender, EventArgs e) /讀取現(xiàn)有圖片 Bitmap images
36、 = new Bitmap(Server.MapPath(autom.jpg); /格式化輸出 images.Save(Response.OutputStream, images.RawFormat); images.Dispose(); /釋放對象 上述代碼使用了 Bitmap 類進行圖形輸出,Bitmap 類的默認構(gòu)造方法能夠載入現(xiàn)有的圖片并執(zhí)行輸出。 注意:Bitmap 類的 RawFormat 屬性能夠直接返回現(xiàn)有文件的文件類型,在 Bitmap 的 Save 方法中可直接使用。,32,底片效果 主講:Jayce_Zou,在 ASP.NET 中,可以通過網(wǎng)頁進行圖片處理,包括底片、銳化
37、等效果。 在進行底片效果制作前,首先需要了解底片效果是如何實現(xiàn)的,在圖片顯示中,其實是很多很多的點(像素)組成一個圖片的,如果像素的數(shù)量很多,則圖片顯示的就清晰,如果像素數(shù)量較少,則圖片看上去就不那么清晰。一個圖片的組成是通過像素組成的,這也就是說,一個圖片包括很多的小點進行組合,最后組合成圖片。 在進行底片效果的制作時,只需要分別找到圖片中的這些點,并獲取這些點的像素的值,再取反保存即可。,33,主講:Jayce_Zou,Bitmap images = new Bitmap(Server.MapPath(change.jpg); for (int i = 0; i images.Width;
38、 i+) /循環(huán)遍歷寬 for (int j = 0; j images.Height; j+) /循環(huán)遍歷高度 Color pix = images.GetPixel(i, j); /獲取圖像像素值 int r = 255 - pix.R; /像素值取反 int g = 255 - pix.G; /轉(zhuǎn)換顏色 int b = 255 - pix.B; /轉(zhuǎn)換顏色 images.SetPixel(i, j, Color.FromArgb(r, g, b); /保存像素值 images.Save(Response.OutputStream, System.Drawing.Imaging.Image
39、Format.Jpeg); images.Dispose();,34,浮雕效果 主講:Jayce_Zou,執(zhí)行浮雕效果與底片效果實現(xiàn)手法非常類似,但是浮雕效果的實現(xiàn)與底片效果的實現(xiàn)中所需要使用的算法又不盡相同。 實現(xiàn)浮雕效果通常是將圖像上每個像素點與其對角線的像素點形成差值,使相似顏色值淡化,不同顏色值之間保持突出,從而形成縱深感,達到浮雕的效果。 在程序開發(fā)中,可以講像素點的像素值與周邊的像素值相減后加上 128,則可以呈現(xiàn)浮雕效果。,35,浮雕效果 主講:Jayce_Zou,Bitmap images = new Bitmap(Server.MapPath(change.jpg); /載入
40、圖片 for (int i = 0; i images.Width-1; i+) /循環(huán)遍歷寬 for (int j = 0; j images.Height-1; j+) /循環(huán)遍歷高度 Color pix1 = images.GetPixel(i, j); /獲取圖像像素值 Color pix2 = images.GetPixel(i+1, j+1); /獲取圖像像素值 int r = Math.Abs(pix1.R - pix2.R + 128); /實現(xiàn)浮雕效果 int g = Math.Abs(pix1.G - pix2.G + 128); int b = Math.Abs(pix1.B - pix2.B + 128); r = check(r); /判斷是否溢出 g = check(g); b = check(b); images.SetPixel(i, j, Color.FromArgb(r, g, b); /設置像素值 images.Save(Response.OutputStream, System.Drawi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 游離輻射防護管制收費標準模板
- 影視行業(yè)數(shù)字版權(quán)管理與交易平臺方案
- 英語四級歷年真題試卷
- 醫(yī)用設備應急采購方案
- 商業(yè)綜合體停車位使用權(quán)轉(zhuǎn)讓協(xié)議
- 沼氣設施報廢處置方案
- 股權(quán)代持及代管服務合同協(xié)議
- 茶樓茶葉批發(fā)市場租賃合同書
- 防水安裝方案么
- 別墅草坪修理方案
- 渣土外運施工方案(3篇)
- 胰腺手術(shù)技巧 胰腺切除術(shù)全程操作解析
- T/CECS 10169-2021埋地用聚乙烯(PE)高筋纏繞增強結(jié)構(gòu)壁管材
- 農(nóng)業(yè)經(jīng)濟專業(yè)實習總結(jié)范文
- 商場裝修物業(yè)管理方案
- DB11∕T 1630-2019 城市綜合管廊工程施工及質(zhì)量驗收規(guī)范
- 智能電池管理算法-洞察闡釋
- 患者心理需求與溝通策略匹配-洞察闡釋
- 2025河南鄭州市新鄭市投資集團招聘25人筆試參考題庫附帶答案詳解
- 十八項醫(yī)療質(zhì)量安全核心制度-2025版考核試題
- 管培生合同或協(xié)議模板
評論
0/150
提交評論