圖片管理器報告_第1頁
圖片管理器報告_第2頁
圖片管理器報告_第3頁
圖片管理器報告_第4頁
圖片管理器報告_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Java面向?qū)ο蟪绦蛟O計學期作業(yè)項目報告題 目 圖片管理器組 長 崔利歡組 員 趙志軍 諶超塵 陳慧 施鳳婷系 別 軟件工程學 院 軟件學院指導教師 付 偉 講師2016年6月11日目 錄一、 項目基本功能陳述3二、 項目進度及工作安排51、工作安排52、項目進度6三、 項目相關技術(shù)71、圖片在面板中居中算法72、瀏覽圖片時放大與縮小的算法83、圖片的上下張的算法94、播放工具欄可以隱藏算法95、鍵盤與鼠標交替使用算法96、圖片編輯算法107、編輯圖片時圖片的縮放算法10四、 項目設計121、圖片瀏覽功能122、圖片編輯功能12五、 項目實現(xiàn)131、圖片查看器首頁132、圖片查看功能頁面143

2、、圖片編輯功能頁面17六、 總結(jié)與展望201、 項目基本功能陳述本項目是一款關于圖片管理器的應用軟件,如圖1.1所示,功能包括圖片查看與圖片編輯兩大主要功能。如圖1.2所示,圖片查看包括以幻燈片形式播放,圖片刪除,圖片上一張,圖片下一張,圖片放大,圖片縮小等功能,如圖1.3所示,圖片編輯包括對圖片的格式轉(zhuǎn)化,圖片銳化,圖片馬賽克,圖片半透明效果,圖片模糊效果,圖片照亮,裁剪圖片等功能。圖1.1圖1.2圖1.32、 項目進度及工作安排1、工作安排如表2.1.1所示,對全體小組人員進行項目安排。姓名項目安排全體小組人員收集資料,列出項目需求崔利歡完成項目框架、編寫項目報告文檔添加編輯功能趙志軍完成

3、幻燈片播放功能、完成小程序功能諶超塵完成項目報告文檔、完成圖片首頁初始化陳慧完成項目需求文檔,完成PPT的制作完成圖片轉(zhuǎn)化格式功能施鳳婷完成項目需求文檔,完成PPT的制作完成圖片面板查看功能表2.1.12、項目進度如表2.2.1所示:時間項目進度完成者2016.4.27-2016.5.3收集資料,列出項目需求全體小組人員2016.5.5-2016.5.10完成項目框架崔利歡2016.5.11-2016.5.15完成項目瀏覽功能崔利歡陳慧施鳳婷2016.5.12-2016.5.18完成項目幻燈片功能趙志軍諶超塵2016.5.18-2016.6.2完成項目編輯功能崔利歡趙志軍2016.6.4-20

4、16.6.9完成項目整合全體小組人員表2.2.13、 項目相關技術(shù)1、圖片在面板中居中算法因為圖片的大小不一樣,所以對圖片居中的顯示需要進行分類處理。1) 對于寬度與高度都比放置圖片的面板小的,可以用屏幕的寬度(高度)減去圖片的寬度(高度) 再除以2,設置起始坐標位置。2) 對于寬度比面板小的,而高度比面板的高度高的圖片,則圖片放置的起始位置的橫坐標與1)中的處理方式相同,而圖片的縱坐標的位置設置為10個像素。3) 對于高度比面板小的,而寬度比面板的寬度寬的圖片,則圖片放置的起始位置的縱坐標與1)中的處理方式相同,而圖片的橫坐標的位置設置為10個像素。4) 對于寬度與高度都比放置圖片的面板大的

5、,則將圖片的坐標設置為(10,10)。代碼如下:protected void paintComponent(Graphics g) super.paintComponent(g);if (pathString != null) image = new ImageIcon(pathString).getImage();int a = image.getWidth(this) - this.getWidth();int b = image.getHeight(this) - this.getHeight();if(a > 0 && b > 0)g.drawImage(i

6、mage,10, 10, this.getWidth() - 10, this.getHeight() - 10, 0, 0, image.getWidth(this), image.getHeight(this), null);else if (a > 0 && b < 0) g.drawImage(image,10, -b / 2, this.getWidth() - 10, image.getHeight(null) - b / 2 , 0, 0, image.getWidth(this), image.getHeight(this), null);else

7、if (a< 0 && b > 0) g.drawImage(image,-a / 2, 10,image.getWidth(null) - a / 2, this.getHeight() - 10, 0, 0, image.getWidth(this), image.getHeight(this), null);else g.drawImage(image,-a / 2, -b / 2,image.getWidth(null) - a / 2, image.getHeight(null) - b / 2, 0, 0, image.getWidth(this), i

8、mage.getHeight(this), null); 2、瀏覽圖片時放大與縮小的算法 對于圖片的縮放可以根據(jù)一個分式的分子與分母同時加上或減去原式的分子與分母的比例的倍數(shù),則分式的大小不變的原理來進行縮放圖片。代碼如下:float proportion = (float) (jFrame.image.getWidth(null)/ jFrame.image.getHeight(null);/獲得寬與高的比例jFrame.photoJpanel.setBounds(jFrame.photoJpanel.getX()- (int) (5 * proportion), jFrame.photoJ

9、panel.getY() - 5,jFrame.photoJpanel.getWidth() + (int) (10 * proportion),jFrame.photoJpanel.getHeight() + 10);/設置位置 3、圖片的上下張的算法 先獲得圖片的路徑,然后根據(jù)路徑將本文件下的圖片(通過文件過濾)的絕對路徑全部加載到ArrayList的集合中,然后對集合進行操作。4、播放工具欄可以隱藏算法 在全屏播放時,當鼠標移進相應的區(qū)域時,工具欄面板會及時顯示出來。一個JFrame框架有許多面板層組成,最頂層的是玻璃面板,玻璃面板為不可見,透明的,把工具欄面板添加到玻璃面板中,并且將其

10、設置成可見,透明的,就可以達到以上的效果。代碼如下:fullToolJPanel = new FullToolJPanel();JPanel glasspane = new JPanel();setGlassPane(glasspane);glasspane.add(fullToolJPanel);glasspane.setLayout(null);glasspane.setOpaque(false);getGlassPane().setVisible(true);5、鍵盤與鼠標交替使用算法為了實現(xiàn)鍵盤與鼠標交替的使用,在這里需用將JFrame上的所有按鈕都設置成不聚焦點,設置的方法是jbut

11、ton.setFocusable(false);6、圖片編輯算法為了實現(xiàn)對圖片進行編輯處理,我們使用了雙緩沖技術(shù),將 image寫到bufferImage中,然后再對bufferImage中的圖像進行處理,最后再將bufferImage中的圖片寫入到文件中。代碼如下(圖片放大處理): jFrame.photoJpanel.getHeight() + 10);/設置位置 BufferedImage buffImage1 = new BufferedImage(jFrame.photoJpanel.getWidth(), jFrame.photoJpanel.getHeight(),Buffere

12、dImage.TYPE_3BYTE_BGR);/創(chuàng)建雙緩沖對象Graphics g2 = buffImage1.createGraphics(); /獲得畫筆g2.drawImage(buffImage, 0, 0, jFrame.photoJpanel.getWidth(),/jFrame.photoJpanel.getHeight(), 0, 0, buffImage.getWidth(null),buffImage.getHeight(null), null);/將圖片繪到緩沖圖片中g(shù)2.dispose();/銷毀畫筆buffImage = buffImage1;/獲得緩沖引用對象7、編

13、輯圖片時圖片的縮放算法根據(jù)瀏覽圖片進行縮放的算法,再創(chuàng)建一個緩沖圖像,將其大小設置成要縮放后的圖片,然后再把圖片繪制到緩沖圖像中。float proportion = (float) (jFrame.image.getWidth(null)/ jFrame.image.getHeight(null);/獲得寬與高的比例jFrame.photoJpanel.setBounds(jFrame.photoJpanel.getX()+ (int) (5 * proportion), jFrame.photoJpanel.getY() + 5,jFrame.photoJpanel.getWidth()

14、- (int) (10 * proportion),jFrame.photoJpanel.getHeight() - 10);/設置位置BufferedImage buffImage1 = new BufferedImage(jFrame.photoJpanel.getWidth(), jFrame.photoJpanel.getHeight(),BufferedImage.TYPE_3BYTE_BGR);/創(chuàng)建雙緩沖對象Graphics g2 = buffImage1.createGraphics();/獲得畫筆g2.drawImage(buffImage, 0, 0, jFrame.pho

15、toJpanel.getWidth(),jFrame.photoJpanel.getHeight(), 0, 0,buffImage.getWidth(null),buffImage.getHeight(null), null);/將圖片繪到緩沖圖片中g(shù)2.dispose();/銷毀畫筆4、 項目設計1、圖片瀏覽功能2、圖片編輯功能5、 項目實現(xiàn)如圖5.1所示,點擊圖片查看器.exe,則可以直接進入軟件。 圖5.11、圖片查看器首頁如圖5.1.1所示,左邊是目錄導航,右邊是預覽窗口,預覽窗口之上有編輯按鈕,瀏覽按鈕,以及桌面小程序的啟動與關閉按鈕。當點擊預覽面板是就會彈出一個彈出菜單,可以對圖

16、片進行編輯處理。圖5.1.1如圖5.1.2所示,當點擊啟動按鈕時,就會出現(xiàn)一個桌面時鐘表。圖5.1.22、圖片查看功能頁面若想對圖片進行瀏覽,則可直接雙擊預覽圖片面板或者可以點擊瀏按鈕也可以點擊左鍵然后點擊彈出菜單上的瀏覽選項,則可跳入瀏覽面板頁面。如圖5.2.1所示: 圖5.2.1當鼠標移動到不同位置時,工具面板會相應地發(fā)生變化,如圖5.2.2所示,當鼠標移動到下一張位置時,界面發(fā)生的變化。 圖5.2.2當點擊工具面板上的幻燈片按鈕或按Enter鍵時,就出現(xiàn)了如圖5.2.3所示的頁面。在此頁面中圖片以一定時間間隔播放圖片,這個時間間隔可以用戶自己設置,用戶可以暫停,也可以自己點擊進行切換圖片

17、。圖5.2.3若用戶想要退出全屏瀏覽頁面,可以直拉按Esc鍵或者可以點擊屏幕上的關閉按鈕,就會退到首頁頁面。如圖5.2.4所示:圖5.2.43、圖片編輯功能頁面若想對圖片進行編輯處理,則可直接點擊編輯按鈕也可以點擊左鍵然后點擊彈出菜單上的編輯菜單選項,則可跳入編輯面板頁面。如圖5.3.1所示:圖5.3.1圖片編輯頁面分為菜單欄和圖片面板,菜單欄可以對圖片進行一系列的編輯處理,如圖5.3.2所示,圖片特效菜單功能:圖5.3.2當點擊文件菜單,選擇打開,則會彈出一個新的選擇圖片對話框,可以對圖片進行重新選擇,如圖5.3.3所示:圖5.3.4如圖5.3.5所示圖片裁剪功能:圖5.3.5如圖5.3.6

18、所示圖片銳化功能:圖5.3.66、 總結(jié)與展望通過將近一個月的項目中,使我們學到了很多東西,也讓我們看到了自己的在一些知識上的不足,也將使我們在后面java web的學習中還要更加努力,以便將來找到自己適意的工作,在這次項目中我學到了很多東西,不只是代碼上的知識,也學到了java框架上的一些基本東西,還有層次結(jié)構(gòu)的好處和由來,怎樣實現(xiàn)封裝使得更好的保護數(shù)據(jù),實現(xiàn)java的三大特點,使代碼的耦合度降低提高內(nèi)聚力類和類之間的依賴性降低使模塊和模塊之間的層次分明,實現(xiàn)代碼的復用和實現(xiàn)結(jié)構(gòu)的復用使得開發(fā)一個系統(tǒng)的性能更加的優(yōu)異。在這次項目中使我對java面向?qū)ο蟮恼J識有了更深刻的印象,對“萬物皆為對象“這個理念有更深層次的理解,通過和老師的交流和上網(wǎng)了解的一些知識,其實做軟件的實質(zhì)并不是在代碼上實現(xiàn)什么樣的功能,你只要愿意去用你所學的知識肯定能夠?qū)崿F(xiàn)某個功能,但學軟件的最根本是分析和設計,所以現(xiàn)

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論