多功能圖像瀏覽器制作畢業論文word格式_第1頁
多功能圖像瀏覽器制作畢業論文word格式_第2頁
多功能圖像瀏覽器制作畢業論文word格式_第3頁
多功能圖像瀏覽器制作畢業論文word格式_第4頁
多功能圖像瀏覽器制作畢業論文word格式_第5頁
已閱讀5頁,還剩26頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、PAGE 2本科生畢業論文題 目多功能圖像瀏覽器制作 系 別 班 級 姓 名 學 號 答辯時 新疆農業大學計算機與信息工程學院目 錄 TOC o 1-3 h z u HYPERLINK l _Toc325538662 摘要 PAGEREF _Toc325538662 h 1 HYPERLINK l _Toc325538663 1多功能圖像瀏覽器概述 PAGEREF _Toc325538663 h 3 HYPERLINK l _Toc325538664 1.1概念 PAGEREF _Toc325538664 h 3 HYPERLINK l _Toc325538665 1.2背景 PAGEREF

2、_Toc325538665 h 3 HYPERLINK l _Toc325538666 1.3國內外發展現狀 PAGEREF _Toc325538666 h 3 HYPERLINK l _Toc325538667 1.4市場前景 PAGEREF _Toc325538667 h 4 HYPERLINK l _Toc325538668 2可行性分析 PAGEREF _Toc325538668 h 4 HYPERLINK l _Toc325538669 2.1技術可行性 PAGEREF _Toc325538669 h 4 HYPERLINK l _Toc325538670 2.2經濟可行性 PAGE

3、REF _Toc325538670 h 5 HYPERLINK l _Toc325538671 3需求分析 PAGEREF _Toc325538671 h 5 HYPERLINK l _Toc325538672 3.1功能需求 PAGEREF _Toc325538672 h 5 HYPERLINK l _Toc325538673 3.2性能需求 PAGEREF _Toc325538673 h 5 HYPERLINK l _Toc325538674 4系統技術原理 PAGEREF _Toc325538674 h 5 HYPERLINK l _Toc325538675 4.1圖像編碼 PAGERE

4、F _Toc325538675 h 5 HYPERLINK l _Toc325538676 4.2圖像空間變換 PAGEREF _Toc325538676 h 6 HYPERLINK l _Toc325538677 圖像平移 PAGEREF _Toc325538677 h 7 HYPERLINK l _Toc325538678 圖像旋轉 PAGEREF _Toc325538678 h 7 HYPERLINK l _Toc325538679 圖像縮放 PAGEREF _Toc325538679 h 8 HYPERLINK l _Toc325538680 4.3 圖像色彩 PAGEREF _Toc

5、325538680 h 8 HYPERLINK l _Toc325538681 Bitmap對象 PAGEREF _Toc325538681 h 8 HYPERLINK l _Toc325538682 圖像顏色值得提取 PAGEREF _Toc325538682 h 9 HYPERLINK l _Toc325538683 圖像顏色設定與重顯 PAGEREF _Toc325538683 h 9 HYPERLINK l _Toc325538684 5系統設計 PAGEREF _Toc325538684 h 10 HYPERLINK l _Toc325538685 5.1圖像處理變換流程 PAGER

6、EF _Toc325538685 h 10 HYPERLINK l _Toc325538686 5.2系統軟件結構 PAGEREF _Toc325538686 h 10 HYPERLINK l _Toc325538687 5.3功能模塊 PAGEREF _Toc325538687 h 10 HYPERLINK l _Toc325538688 5.4系統開發環境 PAGEREF _Toc325538688 h 13 HYPERLINK l _Toc325538689 硬件環境 PAGEREF _Toc325538689 h 13 HYPERLINK l _Toc325538690 軟件環境 PA

7、GEREF _Toc325538690 h 13 HYPERLINK l _Toc325538691 6系統實現 PAGEREF _Toc325538691 h 13 HYPERLINK l _Toc325538692 6.1瀏覽模塊 PAGEREF _Toc325538692 h 13 HYPERLINK l _Toc325538693 圖像打開 PAGEREF _Toc325538693 h 13 HYPERLINK l _Toc325538694 圖像放大縮小 PAGEREF _Toc325538694 h 14 HYPERLINK l _Toc325538695 圖像旋轉 PAGERE

8、F _Toc325538695 h 15 HYPERLINK l _Toc325538696 圖像平移 PAGEREF _Toc325538696 h 17 HYPERLINK l _Toc325538697 其他功能 PAGEREF _Toc325538697 h 18 HYPERLINK l _Toc325538698 馬賽克 PAGEREF _Toc325538698 h 19 HYPERLINK l _Toc325538699 百葉窗 PAGEREF _Toc325538699 h 20 HYPERLINK l _Toc325538700 6.3圖像處理模塊 PAGEREF _Toc3

9、25538700 h 21 HYPERLINK l _Toc325538701 特色處理 PAGEREF _Toc325538701 h 21 HYPERLINK l _Toc325538702 彩色圖像 PAGEREF _Toc325538702 h 24 HYPERLINK l _Toc325538703 圖像壓縮 PAGEREF _Toc325538703 h 26 HYPERLINK l _Toc325538704 圖像格式轉換 PAGEREF _Toc325538704 h 26 HYPERLINK l _Toc325538705 墻紙設置 PAGEREF _Toc325538705

10、 h 27 HYPERLINK l _Toc325538706 7軟件測試 PAGEREF _Toc325538706 h 27 HYPERLINK l _Toc325538707 7.1測試原理與方法 PAGEREF _Toc325538707 h 27 HYPERLINK l _Toc325538708 7.2功能測試 PAGEREF _Toc325538708 h 27 HYPERLINK l _Toc325538709 7.3分析與結論 PAGEREF _Toc325538709 h 29 HYPERLINK l _Toc325538710 8重點難點及問題解決 PAGEREF _To

11、c325538710 h 29 HYPERLINK l _Toc325538711 8.1重點問題及解決 PAGEREF _Toc325538711 h 29 HYPERLINK l _Toc325538712 8.2難點問題及解決 PAGEREF _Toc325538712 h 29 HYPERLINK l _Toc325538713 9結論 PAGEREF _Toc325538713 h 29 HYPERLINK l _Toc325538714 9.1系統特色 PAGEREF _Toc325538714 h 29 HYPERLINK l _Toc325538715 9.2下一步展望 PAG

12、EREF _Toc325538715 h 30 HYPERLINK l _Toc325538716 參考文獻 PAGEREF _Toc325538716 h 31 HYPERLINK l _Toc325538717 謝辭 PAGEREF _Toc325538717 h 33多功能圖像瀏覽器制作張凡 指導教師:羅江巖摘要:圖像瀏覽器是日常圖像應用中必可少的應用軟件之一,目前市場上大多數采用ACDSee圖像瀏覽器。而此類瀏覽器在一些圖像的支持方面還有有一定的問題。本文首先介紹了多功能圖像瀏覽器的應用現狀和前景,然后主要介紹了采用Visual Basic.Net程序設計語言來開發多功能圖片瀏覽器的開

13、發過程,詳細介紹了圖像瀏覽器功能模塊的實現。實現的主要功能有:圖像瀏覽、旋轉、格式轉換、拷貝、刪除、粘貼、剪切、打印、特效處理以及圖像壓縮和快捷鍵鍵盤控制,此瀏覽器支持多種圖像格式,包括GIF、JPG、BMP、ICO等。實現了了Visual Basic.Net中利用GetPixel()方法和SerPixl()方法來實現圖像特色處理功能。最后本文通過功能測試表明,本系統在對圖像的色彩處理和圖像的格式處理方面具有一定的特色,系統有一定的實用價值。關鍵詞:圖像控制;圖像瀏覽;色彩處理;格式轉換;Visual Basic.Net;GetPixel;SetPixelMulti-Function Imag

14、e Browser DevelopmentZhang Fan Tutor:Luo JiangyanAbstrct: Image browser is daily image application will be less application software of, at present the majority of the market by using ACDSee image browser. While the browser in some image support still has some problems. This article first introduced

15、 the multifunctional image viewer application status and trend, then introduces the Visual Basic.Net programming language to develop multifunctional picture browser development process, introduces in detail the image browser function module realization. Its main function has: image browsing, rotatio

16、n, format conversion, copy, paste, delete, cutting, printing, effects processing, image compression and shortcut keys to control the keyboard, this browser support a variety of image formats, including GIF, JPG, BMP, ICO etc. Realization of Visual Basic.Net using the GetPixel() method and the SetPix

17、el () method to achieve image feature processing function. By the final function test shows that, this system in image feature processing and image processing has certain characteristics, the system has a certain practical value. Key words: Image Control; Image Browsing; Format Conversion; Image Col

18、or; Visual Basic.Net; GetPixel; SetPixel 隨著科學技術的不斷發展,計算機的更新速度不斷提高,人們的思想文化素質的提高,對圖像的要求也越來越高。因此把原始圖像與計算機結合起來,從而創作出許多更加完美的圖像,滿足人們的需求。計算機圖像處理,是指利用計算機對圖像進行一系列加工,以便獲得人們所需要的效果。圖像是人類獲取和交換信息的主要來源,人類感知外界信息,80%以上是通過視覺得到的。因此,圖像處理的應用領域必然涉及到人類生活和工作的方方面面1。1多功能圖像瀏覽器概述1.1概念圖像瀏覽器是指能夠實現圖像的顯示和基本變化的一種瀏覽器。多功能圖像瀏覽器即能夠瀏覽圖片

19、并實現圖像的一些基本變化,如剪切、放大縮小、旋轉。還能夠實現對一些簡單視頻的播放和對圖像增加馬賽克等一些高級的變化的圖像瀏覽器。1.2背景從1991年開始開發,1992年正式完成的Erwise瀏覽器才是世界上首款圖形界面的瀏覽器。Erwise瀏覽器于1991年由Kim Nyberg等四名在赫爾辛基理工大學上學的學生開發,1992年正式完工。在當時,Erwise是唯一一款具備文本搜索、可載入多個Web頁面的瀏覽器,瀏覽器基于X-Windows平臺。但是由于功能和技術方面的缺陷以及對市場的把握問題,使得這款瀏覽器過早的推出市場的平臺2。維基百科上顯示,當今世界上絕大多數人認為1993年正式發布Mo

20、saic瀏覽器是世界上首款圖形界面的瀏覽器,也就是后來的Netscape瀏覽器,曾經掀起了互聯網的一股大的風波。1.3國內外發展現狀現如今圖像瀏覽器技術已然非常成熟,市面上也出想了大量的各種類型的圖像瀏覽器,如ACDSee、美圖看看等。其中最知名的要數由ACD Systems這個全球圖像管理和技術圖像軟件頂尖的公司開發的ACDSee圖像瀏覽器。在國外,ACD Systems 軟件公司于1989年合并成立,并于1993年4月28日更名,跨入CD-ROM軟件開發行業。公司明白,如果ACD Systems公司開發出市場上最快的JPEG解碼軟件,它將在市場中占有技術領先地位。經過深入的研發,ACDSe

21、e如今迅速崛起,成為圖像瀏覽和管理的主導軟件。ACDSee與Mosaic瀏覽器綁定,可用于JPEG解碼和瀏覽。ACDSee作為共享軟件迅速占領全球網絡,全球擁有超過2500萬的用戶。ACD Systems 每月軟件的下載量近100萬3。在國內,知名圖像瀏覽器美圖看看是目前最快的萬能看圖軟件,完美兼容所有主流圖片格式,擁有簡潔干凈的界面,用戶好評度極高。美圖看看采用自主研發的圖像引擎,專門針對數碼照片優化,使大圖片的瀏覽性能全面提升!但是在大多數圖像瀏覽器在對圖像格式的支持力度上還有待加強,市場上多數是只能支持某些種類的圖片格式,大多數格式無法支持,而且一些特殊功能無法滿足客戶的需求還有待加強。

22、1.4市場前景圖像瀏覽器的地位越來越重要,我自己現在打開電腦以后,任何圖像的瀏覽都需要瀏覽器。我們看到無論是國際上,還是國內主要的廠商,其實也都看到了這一點。最近,我們發現這一兩年,圖像瀏覽器瀏覽器,國外的包括ACDSee,市場做得最多的。 國內瀏覽器方面應該是美圖看看做得比較好的,之前一直也有很多自己的創新。之前美圖看看自己做,還沒有明顯競爭。但是最近一段時間我們發現,大的互聯網企業,包括百度、騰訊、阿里、盛大,我們都聽說已經在考慮進一步開發圖像瀏覽器這個重要產品。由此我們可以看到,多功能圖像瀏覽器的開發前景是很良好的。2可行性分析2.1技術可行性Visual Basic.Net編程語言是微

23、軟推出的最新版本。過去只有C+才能夠使用的操作系統的高級功能,現在Visual Basic也同樣可以使用。另外,Visual Basic.Net還擴展了圖像處理功能,使得大部分圖像處理功能可以在VB下快速實現。綜上所述,使用Visual Basic.Net開發多功能圖像瀏覽器在技術上可行。2.2經濟可行性考慮一項產品是否在經濟上可行需要考慮一下幾個方面:基礎投資、直接間接受益、投資收益率和投資回收期。本系統在開發的過程中只需要.Net開發平臺作為開源,在投資方面沒有要求,所以在經濟上也是可行的。3需求分析3.1功能需求該系統的功能主要集中在菜單欄和工具欄中,菜單欄中所體現的都是處理圖像的功能。

24、包括以下方面:1)圖像打開、保存、關閉和退出等功能;2)對圖像進行復制、粘貼、剪切、翻轉。其中翻轉包括:水平翻轉、垂直翻轉、逆時針90度旋轉和順時針90度旋轉;3)可以實現上一張、下一張、放大、縮小等基本處理;4)過濾圖像,包括:銳化、浮雕、柔化、霧化、油畫等;5)對彩色圖像進行二值化變換,包括:黑白處理和輪廓提取;6)可以對圖像進行格式的轉化和壓縮;7)可以進行圖像顯示特效的變換,包括:百葉窗、馬賽克等;8)可以實現簡單音頻、視頻的播放。工具欄中的功能主要體現基本變換,菜單欄實現各種圖像效果的處理。3.2性能需求本系統開發之后在進行工作的時候處理時間不能過慢,可用時間長,便于操作,有邏輯層次

25、感,開發軟件美觀。在對較大圖像處理的時候保證內存的充足,使其在對圖像處理的過程中不會出現內存不足現象。 4系統技術原理4.1圖像編碼1988年在圖像編碼的發展歷史中是極為重要的一年。四十年研究成果的集中表現:靜止圖像壓縮的JPEG建議4之原理框圖已基本建立。重要專著5出版發行。二十世紀40年代末的Shannon信息論使圖像編碼基本原理的起源6,該理論的指導下出現了一批編碼方法:Huffman編碼、算數編碼、字典編碼7等。在本系統中涉及到了圖像的壓縮編碼,圖像編碼的研究內容是圖像數據壓縮。在滿足一定圖像質量的條件下用盡可能少的數據量來表示圖像。在VB.NetOverloads Public Su

26、b Save(ByVal filename as String,ByVal encoder as ImageCodecInfo,ByVal encoderParams as EncoderParameters )其中,參數ByVal filename As String是包含要將此Image對象保存為文件的名稱;參數ByVal encoder As ImageCodeInfo表示Image對象的ImageCoderInfo對象;參數byVal encoderParams As EncoderParametes表示一個EncoderParameters,它制定圖像編碼器使用的參數。4.2圖像空間

27、變換圖像的基本算法涉及到了圖像的一些基本的變換,如平移、縮放和旋轉等。一個幾何運算需要兩個獨立的算法。首先,需要一個算法來定義空間變換本身,用它描述每一個像素如何從其初試位置“移動”到終止位置,即每個像素的“運動”;同時,還需要一個用于灰度級插值的算法,這是因為,在一般情況下,輸入圖像的位置坐標(x,y)為整數,而輸出圖像的位置坐標為非整數,反過來也是如此8。如果用f(x,y)來表示輸入圖像的灰度函數,用g(x,y)來表示輸出圖像的灰度函數,那就可以方便的用數學方法來描述輸入,輸出圖像點之間的空間關系。幾何運算的一般定義為如公式4-1所示:這里如公式4-2所示 唯一的描述了空間變換,若他們是連

28、續的,則幾何變換保持圖形的連通性。如果令公式4-2中 其中ct-sd不為0,就得到簡單的空間幾何變換。用矩陣表示如公式4-4所示: 當c,d,s,t,e,r取某些特殊值時,就可以得到常用的圖像平移,旋轉和縮放的變換。圖像平移圖像的平移變換如公式4-5所示:將圖像上的點(,)移動,之后得到新的坐標點(,)進行圖像的平移變換。在本程序中在圖像超出屏幕大小,或者向移動圖像的時候可以進行鼠標左鍵按下拖動進行平移,其實現原理為記錄鼠標移動位置,然后讓圖像的頂點按照鼠標移動變換進行變換。圖像旋轉圖像的旋轉變換如公式4-6所示: (公式4-6) 以原點為中心將點(,)旋轉角度而得到新的坐標(,)。在本程序中

29、采用VB.Net中的RotateFlip方法進行圖像的旋轉。圖像縮放圖像的縮放如公式4-7所示: (公式4-7)以原點為中心將圖形的個坐標點分別乘以c,t得出新的坐標點可對圖像進行放大縮小。4.3 圖像色彩圖像的顏色是由三種基本顏色,即紅(R)、綠(G)、藍(B)有機組合而成的,稱為三基色。每種基色可取0到255的值,因此由三基色可組合成(256*256*256)1677萬種顏色910,每種顏色都有其對應的R、G、B值。例如,常見的7種顏色及其對應的R、G、B值如圖4-1所示。對一幅彩色圖像的各像素值進行變換并依變換后的新像素值重新顯示,則可以實現不同的顯示效果11。如表4-1所示。表4-1

30、常見的7種顏色及其RGB值顏色名 R值G值B值紅25500藍00255綠000白255255255黃2552550黑000青0255255品紅2550255Bitmap對象對圖像文件進行處理的類主要為Bitmap類,Bitmap類屬于System.Drawing命名空間,該命名空間提供了對GDI+基本圖形功能的訪問。此類封裝GDI+位圖,此位圖由圖像及其屬性的像素數據組成。Bitmap對象是Bitmap類的實例,用于處理由像素數據定義的圖像,此對象的常用方法和屬性如表4-2所示:表4-2 Bitmap的常用方法和屬性常用公共方法屬性R值說明Height獲取圖像高度PhysicalDimensi

31、on獲取圖像的寬度和高度PixelFormat獲取圖像的像素格式Size獲取圖像的寬度和高度Width獲取對象的寬度GetPixel獲取Bitmap中指定像素的顏色Save以指定格式保存到指定對象中SetPixel設置Bitmap中指定像素的顏色RotateFlip旋轉、翻轉或旋轉和翻轉圖像圖像顏色值得提取對圖像進行處理時要使用GetPixel方法獲取此Bitmap中指定像素的顏色。這些顏色是由(R,G,B)三基色和(A)透明度組成的。獲取指定像素顏色值使用GetPixel方法,格式為c=tuxing.GetPixel(i,j)其中,tuxing表示變量名,(i,j)為取得顏色的坐標位置,Ge

32、tPixel方法將指定位置的顏色值返回一個長整形的整數。圖像顏色設定與重顯重新設置圖像的像素使用Color.FromArgb方法。方法是從4個8位ARGB分量值創建Color結構。盡管此方法允許為每個分量傳遞32位值,單每個分量的值僅限于8位,格式為:Overloads Public Shared Function FromArgb(Integer,Integer,Integer,Integer)As Color而重顯圖像則采用SetPixel方法,用法如下:c=c.FromArgb(a,rr,rr,rr)tuxing.Setpixel(i,j,c)5系統設計5.1圖像處理變換流程在本系統中有

33、總體流程圖,系統功能開發按照流程圖實現,如圖5-1所示。圖5-1 系統流程圖5.2系統軟件結構通過對需求分析階段的總結可以看出系統的總體結構,如圖5-2所示。圖5-2 軟件結構圖5.3功能模塊一個完整的圖像瀏覽器要有圖像的各種方式瀏覽,包括特效和特色瀏覽以及形狀的變換,本系統三個功能模塊如圖5-3所示:圖5-3 系統總體功能模塊1)圖像瀏覽:上一張、下一張、旋轉、復制、剪切、刪除等。此模塊主要為圖像的各種方式的瀏覽,包括打開、保存和打印等功能的實現,此模塊是本系統中工作量最大的模塊,其中主要涉及到圖像的空間變換算法,如圖5-4所示:圖5-4 圖像瀏覽功能2)圖像特效:馬賽克顯示、飛入和百葉窗涉

34、及到的技術主要為使用SetPixel為圖像設置新的像素點如圖5-5所示:圖5-5 圖像特效功能3)圖像處理:色彩的處理和格式的處理在此模塊中涉及到的圖像算法很多,主要包括圖像的壓縮編碼、格式轉換以及圖像的彩色處理如圖5-5所示:圖5-6 圖像處理功能5.4系統開發環境硬件環境開發硬件環境CPU采用1*2GB以上,內存采用512MB以上,硬盤采用300GB容量以上。軟件環境首先安裝Microsoft公司的IIS2000,然后再安裝Visual Studio.Net2003或者 Visual Studio.Net2005軟件。本系統的開發環境為Visual Basic2100,平臺為.Net4.0

35、版本。(XP下安裝必須是專家版操作系統)6系統實現6.1瀏覽模塊圖像打開在工具欄或者菜單欄中有圖像打開的選項,其中主要使用FolderBroser控件和OpenFileDialog控件實現12,如圖6-1所示。其中關鍵代碼如下:file = FolderBrowser.SelectedPath & 獲取用戶路徑For Each foundImage As String In My.Comnly, *.gif*, *.jpg*, *.bmp*, *.png*, *jpeg*)搜索目錄 i = i + 1ReDim Preserve filenames(i)重新定義數組大小filenames(i)

36、 = foundImageCall ShowPicture()顯示圖像圖6-1 打開圖片文件夾圖像放大縮小在本系統中沒有采用圖像編碼算法,只是簡單對圖片長寬進行放大縮小,其中實現了鍵盤上下鍵控制大小變化的功能。如圖6-2、圖6-3和圖6-4所示。圖6-2 圖像原始大小 圖圖6-3 放大效果圖 圖6-4 縮小效果圖圖像旋轉圖像旋轉本程序采用.Net提供的RotateFlip方法進行旋轉。方法介紹如表6-1所示13。表6-1 RotateFlipType列舉型別成員名稱說明1Rotate180FlipNone指定不翻轉的 180 度旋轉。2Rotate180FlipX指定 180 度旋轉,后面接續

37、水平翻轉3Rotate180FlipXY指定 180 度旋轉,后面接續水平和垂直翻轉。4Rotate180FlipY指定 180 度旋轉,后面接續垂直翻轉。5Rotate270FlipNone指定不翻轉的 270 度旋轉。6Rotate270FlipX指定 270 度旋轉,后面接續水平翻轉。7Rotate270FlipXY指定 270 度旋轉,后面接續水平和垂直翻轉。8Rotate270FlipY指定 270 度旋轉,后面接續垂直翻轉。9Rotate90FlipNone指定不翻轉的 90 度旋轉。10Rotate90FlipX指定 90 度旋轉,后面接續水平翻轉。11Rotate90FlipX

38、Y指定 90 度旋轉,后面接續水平和垂直翻轉12Rotate90FlipY指定 90 度旋轉,后面接續垂直翻轉。14RotateNoneFlipX指定不旋轉,后面接續水平翻轉。16RotateNoneFlipY指定不旋轉,后面接續垂直翻轉。其中關鍵代碼如下,這里只寫順時針90度旋轉和垂直翻轉Dim bmp As New Bitmap(PictureBox1.Imagebmp.RotateFlip(RotateFlipType.Rotate90FlipNone) 指定不翻轉的270度旋轉,即順時針90度旋轉PictureBox1.Image = bmp Dim bmp As New Bitmap

39、(PictureBox1.Image)bmp.RotateFlip(RotateFlipType.Rotate180FlipNone) 指定不翻轉的180度旋轉,即垂直翻轉PictureBox1.Image = bmp如圖6-5、圖6-6、圖6-7和圖6-8所示。 圖6-5 順時針90度效果圖 圖6-6 逆時針90度效果圖 圖6-7 垂直翻轉效果圖 圖6-8 水平翻轉效果圖圖像平移在圖像超出屏幕大小,或者向移動圖像的時候可以進行鼠標左鍵按下拖動進行平移,其實現原理為記錄鼠標移動位置,然后讓圖像的頂點按照鼠標移動變換進行變換,如圖6-9,圖6-10所示。關鍵代碼如下:If (MouseMoveX

40、 0) And (MouseMoveY 0) Then 圖片移動If (MouseDownOrUp = 1) Then鼠標按下MouseMoveX = MouseX - OldMouseXMouseMoveY = MouseY - OldMouseYRedrawPicture()函數OldMouseX = MouseXOldMouseY = MouseY檢測鼠標移動情況,移動坐標獲得在MouseMove事件里面 圖6-9 圖像原始位置 圖6-10 平移效果圖其他功能其他功能的實現如上一張、下一張則是讀取圖像文件數量,用filename()實現,以下為下一張圖像關鍵代碼:n = n + 1If

41、n = i ThenIf filenames(n) ThenCall ShowPicture()End IfElseIf (n - i) = 1 ThenEnd IfIf (n - i) = 2 Thenn = 0If filenames(n) ThenCall ShowPicture()幻燈片的播放則使用.Net里面的AutoPlayTimer控件。關鍵代碼如下If (n = 0) And (n i) Thenn = 0Call ShowPicture()End IfIf (n = i) Thenn = n + 1End If6.2圖像特效模塊馬賽克在許多需要保密的視頻鏡頭中,使用馬賽克處理

42、鏡頭是比較常用的方式,馬賽克顯示圖像與柔化顯示圖像類似,不過它是通過圖像每個像素點附近及其本身9個像素點的RGB值的平均值取代這9個相熟點的RGB值14。本程序使用.Net圖6-11為馬賽克效果圖。其中關鍵代碼如下:MyColor(0) = MyImage.GetPixel(i - 1, j - 1)MyColor(1) = MyImage.GetPixel(i - 1, j)MyColor(8) = MyImage.GetPixel(i + 1, j + 1)訪問周圍9個點的RGB值While (m 255) Thenr = 255End If處理顏色溢出NewBitmap.SetPixel

43、(x - 1, y - 1, Color.FromArgb(r, g, b)2) 柔化:圖像柔化是出去圖像中點狀噪聲的一種有效方法。所謂柔化圖像,就是指圖像上任何一個像素點與其相鄰像素點的顏色值的大小不會出現劇變的一種處理方法19。由于圖像柔化是將圖像上的每個像素點的RGB值用它附近及其本身的9個像素點的RGB值的平均值取代,結果會在成在去除噪聲的同時降低了圖像的對比度20。為了避免這一缺陷,可以通過引入權數,從而在去除點狀噪聲的同時保留原圖像的對比度,即使用高斯模板。本程序使用.Net圖6-14是柔化后的圖像。其中關鍵代碼如下:Dim pixel As ColorDim Gauss() As

44、 Integer = 1, 2, 1, 2, 4, 2, 1, 2, 1高斯模板pixel = MyBitmap.GetPixel(x + row, y + col) r += pixel.R * Gauss(Index) g += pixel.G * Gauss(Index) b += pixel.B * Gauss(Index)NewBitmap.SetPixel(x - 1, y - 1, Color.FromArgb(r, g, b)3) 光照:本程序使用.Net21為圖像光照效果圖。其中關鍵代碼如下:其中關鍵代碼如下:Dim MyImage As Bitmap = MyBmp.Clo

45、ne(New RectangleF(0, 0,MyWidth, MyHeight), Dim MyCenter As New Point(MyWidth / 2, MyHeight / 2)Dim Radius As Integer = Math.Min(MyWidth / 2, MyHeight / 2)Radius為強光照射半徑,即光暈Dim MyPixel As Integer = 220.0F * (1.0F - MyLength / Radius)r = MyColor.R + CType(MyPixel, Integer)r = Math.Max(0, Math.Min(r, 25

46、5)g = MyColor.G + CType(MyPixel, Integer)g = Math.Max(0, Math.Min(g, 255)b = MyColor.B + CType(MyPixel, Integer)b = Math.Max(0, Math.Min(b, 255)220亮度增加常量,該值越大光亮度越強Dim MyNewColor As Color = Color.FromArgb(255, r, g, b)MyImage.SetPixel(i, j, MyNewColor)將增亮后的像素值寫回到位圖4)浮雕:一個圖像是有很多像素點構成的,如果改變像素點的值就可以實現一些

47、特殊的效果。在.NetFor x As Integer = 0 To Width - 2 Step +1For y As Integer = 0 To Height - 2 Step +1Dim r, g, b As Integerr = 0g = 0b = 0pixel1 = MyBitmap.GetPixel(x, y)pixel2 = MyBitmap.GetPixel(x + 1, y + 1)獲取像素值r = Math.Abs(CType(pixel1.R, Integer) - CType(pixel2.R, Integer) + 128g = Math.Abs(CType(pix

48、el1.G, Integer) - CType(pixel2.G, Integer) + 128b = Math.Abs(CType(pixel1.B, Integer) - CType(pixel2.B, Integer) + 128) If (r 255) Thenr = 255 End If處理顏色溢出 NewBitmap.SetPixel(x, y, Color.FromArgb(r, g, b) 圖6-13 銳化效果圖 圖6-14 柔化效果圖 圖6-15 光照效果圖 圖6-16 浮雕效果圖彩色圖像彩色圖像的處理包括灰度處理,對比度等。本程序中做了黑白效果處理和輪廓提取,在這里作簡單介

49、紹。圖像的二值化處理就是講圖像上的點的灰度置為0或255,也就是講整個圖像呈現出明顯的黑白效果2223。即將256個亮度等級的灰度圖像通過適當的閥值選取而獲得仍然可以反映圖像整體和局部特征的二值化圖像。也就是黑白處理24。在本程序中使用了外部文件Threshold控件,本程序直接調用其函數,未作詳細研究。以下為部分代碼:黑白效果:Dim ts As IThresholder = NewQuickGlobalMean-ts.DoThresholding()調用Threshold的成員IThresholderts.RenderToBitmap(outBMP)輪廓提取:Dim ts As IThre

50、sholder = New ts.DoThresholding()ts.RenderToBitmap(outBMP)Dim com As New Fairy4_ContourDIB.ContourDIB圖6-17為黑白效果圖,圖6-18為輪廓效果圖 圖6-17 黑白效果圖 圖6-18 輪廓提取效果圖圖像壓縮JPEG的全稱是“聯合圖片專家組(Joint Photographic Experts Group)”,是由該專家組制訂的用于連續色調(包括灰度和彩色)靜止圖像的壓縮編碼標準24。JPEG標準的壓縮編碼算法是“多灰度靜止圖像的數字壓縮編碼”。本程序使用Encoder類的Quality字段控制

51、圖像質量。以下為程序關鍵代碼:Dim MyEncoders() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders() 獲取JPG格式的編碼方式Dim j As Int16 = 0Dim MyImageCodecInfo As ImageCodecInfoFor j = 0 To MyEncoders.Length - 1 Step 1If MyEncoders(j).MimeType = image/jpeg ThenMyImageCodecInfo = MyEncoders(j)設置JPG格式圖片質量Dim MyEncoderParame

52、ters As New EncoderParameters(1)Dim MyEncoderParameter As New EncoderParameter(MyEncoder, MyLevel)MyEncoderParameters.Param(0) = MyEncoderParameter圖像格式轉換其中在這里只做BMP格式轉換的關鍵代碼如下:指定轉換的圖片.bmp轉換為BMP在對其他格式進行轉換的時候只需將上面的代碼中bmp改為要轉換的圖格式即可,利用GDI+技術將其進行格式的轉換。墻紙設置本例中我們選擇圖片并取得圖片的完整路徑,然后通過調用API函數,將這幅圖設為墻紙,使用的語法為:S

53、ystemParametersInfoSPI_SETDESKWALLPAPER,0,bmpfile,1 設置墻紙,BMP格式圖片其中SystemParametersInfo表示要設置桌面墻紙,bmpfile是要設置的圖片的路徑。7軟件測試7.1測試原理與方法黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。白盒測試又稱結構測試,透明盒測試、邏輯驅動測試或基于代碼的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟件,白盒指的是盒子是可視的,你清楚盒子內部的東西以及里面是如何運作的25。本軟件在使用工程中涉及到圖像的處理和變換,在處理方面對系統的性能需求不高,在此采用黑盒

54、測試方法。7.2功能測試1)圖像瀏覽在圖像瀏覽模塊的測試中,根據系統功能模塊設計圖可以得出測試功能點為14個,其中不完善功能點2個,有錯誤功能點1個。在此次測試中由于放大縮小算法問題,在進行放大縮小的時候均會出現失真現象,此功能有待完善。而且在對Tiff圖像進行瀏覽時,自己制作的Tiff圖像由于大小問題會出現內存不足現象如表7-1所示:表7-1 圖像瀏覽測試打開放大縮小旋轉上一張下一張幻燈片移動保存GIF續表7-1 圖像瀏覽測試JPGBMPPNGTiff-2)圖像處理在圖像處理模塊測試中根據圖像處理模塊設計圖可以得出一共測試功能點6個,其中不完善功能點一個。在此模塊測試中圖像的壓縮問題沒有很好

55、地實現如表7-2所示:表7-2 圖像處理測試圖像格式壓縮格式墻紙輪廓黑白特色GIF-JPGBMP-PNG-3)圖像特效圖像特效測試功能點3個,全部實現如表7-3所示:表7-3 圖像特效測試圖像格式馬賽克飛入百葉窗GIFJPGBMPPNG7.3分析與結論通過對軟件的測試結果,我們可以看到本次系統的設計還是存在一定的問題,主要是在于圖像處理方面,無法對圖像的壓縮做到很好,只是用了損失質量的方式來實現JPG格式的壓縮。對Tiff圖像的處理也不是很理想,只能做到小圖片的處理。系統也沒有實現圖像的裁剪。當然系統還是可以對存在的問題進行完善的,使以前沒有實現的功能能夠實現,并對已有的功能要進行修改擴充。8

56、重點難點及問題解決8.1重點問題及解決本系統的重點在于圖像的算法問題和圖像的效果處理,在對圖像放大縮小的時候要想油畫失真情況就需要用到算法。在解決方面則采用了NET平臺自帶的一些類、模板和函數(如SetPixe())解決了圖像的特效和顏色處理問題,而在圖像算法方面本系統沒有實現,而是間接地采用了限制其放大縮小倍數來盡量減少失真。8.2難點問題及解決本系統的難點在于圖像的編碼解碼,在圖像的轉換中需要用到圖像的編碼解碼技術,比如圖像的壓縮和格式轉化,還有Tiff圖像的處理都需要解碼器,本系統直接采用了.Net下自帶的函數來獲取解碼器,從而控制圖像的質量和瀏覽制作。9結論9.1系統特色由前文總結可以看出本系統實現了圖像瀏覽器的基本功能主:圖像瀏覽、旋轉、拷貝、刪除、粘貼、剪切等,支持多種圖像格式,包括GIF、JPG、BMP、ICO等。本系統相比其他圖像瀏覽系統來說有很多特色。1)在實現基本功能的同時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論