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

下載本文檔

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

文檔簡介

Java面向對象程序設計學期作業項目報告題目圖片管理器組長崔利歡組員趙志軍諶超塵陳慧施鳳婷系別軟件工程學院軟件學院指導教師付偉講師2016年6月11日目錄一、項目基本功能陳述 3二、項目進度及工作安排 51、工作安排 52、項目進度 6三、項目相關技術 71、圖片在面板中居中算法 72、瀏覽圖片時放大與縮小的算法 83、圖片的上下張的算法 94、播放工具欄可以隱藏算法 95、鍵盤與鼠標交替使用算法 96、圖片編輯算法 107、編輯圖片時圖片的縮放算法 10四、項目設計 121、圖片瀏覽功能 122、圖片編輯功能 12五、項目實現 131、圖片查看器首頁 132、圖片查看功能頁面 143、圖片編輯功能頁面 17六、總結與展望 20項目基本功能陳述本項目是一款關于圖片管理器的應用軟件,如圖1.1所示,功能包括圖片查看與圖片編輯兩大主要功能。如圖1.2所示,圖片查看包括以幻燈片形式播放,圖片刪除,圖片上一張,圖片下一張,圖片放大,圖片縮小等功能,如圖1.3所示,圖片編輯包括對圖片的格式轉化,圖片銳化,圖片馬賽克,圖片半透明效果,圖片模糊效果,圖片照亮,裁剪圖片等功能。 圖1.1圖1.2 圖1.3項目進度及工作安排1、工作安排如表2.1.1所示,對全體小組人員進行項目安排。姓名項目安排全體小組人員收集資料,列出項目需求崔利歡完成項目框架、編寫項目報告文檔

添加編輯功能趙志軍完成幻燈片播放功能、完成小程序功能諶超塵完成項目報告文檔、完成圖片首頁初始化陳慧完成項目需求文檔,完成PPT的制作

完成圖片轉化格式功能施鳳婷完成項目需求文檔,完成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-2016.6.9完成項目整合全體小組人員表2.2.1項目相關技術1、圖片在面板中居中算法因為圖片的大小不一樣,所以對圖片居中的顯示需要進行分類處理。對于寬度與高度都比放置圖片的面板小的,可以用屏幕的寬度(高度)減去圖片的寬度(高度)再除以2,設置起始坐標位置。對于寬度比面板小的,而高度比面板的高度高的圖片,則圖片放置的起始位置的橫坐標與1)中的處理方式相同,而圖片的縱坐標的位置設置為10個像素。對于高度比面板小的,而寬度比面板的寬度寬的圖片,則圖片放置的起始位置的縱坐標與1)中的處理方式相同,而圖片的橫坐標的位置設置為10個像素。對于寬度與高度都比放置圖片的面板大的,則將圖片的坐標設置為(10,10)。代碼如下:protectedvoidpaintComponent(Graphicsg){super.paintComponent(g); if(pathString!=null){ image=newImageIcon(pathString).getImage(); inta=image.getWidth(this)-this.getWidth(); intb=image.getHeight(this)-this.getHeight(); if(a>0&&b>0) g.drawImage(image,10,10,this.getWidth()-10,this.getHeight()-10,0,0,image.getWidth(this),image.getHeight(this),null); elseif(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); } elseif(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),image.getHeight(this),null); } }}2、瀏覽圖片時放大與縮小的算法對于圖片的縮放可以根據一個分式的分子與分母同時加上或減去原式的分子與分母的比例的倍數,則分式的大小不變的原理來進行縮放圖片。代碼如下:floatproportion=(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()+(int)(10*proportion), jFrame.photoJpanel.getHeight()+10);//設置位置3、圖片的上下張的算法先獲得圖片的路徑,然后根據路徑將本文件下的圖片(通過文件過濾)的絕對路徑全部加載到ArrayList的集合中,然后對集合進行操作。4、播放工具欄可以隱藏算法在全屏播放時,當鼠標移進相應的區域時,工具欄面板會及時顯示出來。一個JFrame框架有許多面板層組成,最頂層的是玻璃面板,玻璃面板為不可見,透明的,把工具欄面板添加到玻璃面板中,并且將其設置成可見,透明的,就可以達到以上的效果。代碼如下:fullToolJPanel=newFullToolJPanel(); JPanelglasspane=newJPanel(); setGlassPane(glasspane); glasspane.add(fullToolJPanel); glasspane.setLayout(null); glasspane.setOpaque(false);getGlassPane().setVisible(true);5、鍵盤與鼠標交替使用算法為了實現鍵盤與鼠標交替的使用,在這里需用將JFrame上的所有按鈕都設置成不聚焦點,設置的方法是jbutton.setFocusable(false);6、圖片編輯算法為了實現對圖片進行編輯處理,我們使用了雙緩沖技術,將image寫到bufferImage中,然后再對bufferImage中的圖像進行處理,最后再將bufferImage中的圖片寫入到文件中。代碼如下(圖片放大處理): jFrame.photoJpanel.getHeight()+10);//設置位置 BufferedImagebuffImage1=newBufferedImage( jFrame.photoJpanel.getWidth(), jFrame.photoJpanel.getHeight(), BufferedImage.TYPE_3BYTE_BGR);//創建雙緩沖對象 Graphicsg2=buffImage1.createGraphics();//獲得畫筆 g2.drawImage(buffImage,0,0,jFrame.photoJpanel.getWidth(),// jFrame.photoJpanel.getHeight(),0,0, buffImage.getWidth(null), buffImage.getHeight(null),null);//將圖片繪到緩沖圖片中 g2.dispose();//銷毀畫筆 buffImage=buffImage1;//獲得緩沖引用對象7、編輯圖片時圖片的縮放算法根據瀏覽圖片進行縮放的算法,再創建一個緩沖圖像,將其大小設置成要縮放后的圖片,然后再把圖片繪制到緩沖圖像中。 floatproportion=(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()-(int)(10*proportion), jFrame.photoJpanel.getHeight()-10);//設置位置 BufferedImagebuffImage1=newBufferedImage( jFrame.photoJpanel.getWidth(),jFrame.photoJpanel.getHeight(), BufferedImage.TYPE_3BYTE_BGR);//創建雙緩沖對象 Graphicsg2=buffImage1.createGraphics();//獲得畫筆 g2.drawImage(buffImage,0,0,jFrame.photoJpanel.getWidth(), jFrame.photoJpanel.getHeight(),0,0,buffImage.getWidth(null), buffImage.getHeight(null),null);//將圖片繪到緩沖圖片中 g2.dispose();//銷毀畫筆項目設計1、圖片瀏覽功能2、圖片編輯功能項目實現如圖5.1所示,點擊圖片查看器.exe,則可以直接進入軟件。圖5.11、圖片查看器首頁如圖5.1.1所示,左邊是目錄導航,右邊是預覽窗口,預覽窗口之上有編輯按鈕,瀏覽按鈕,以及桌面小程序的啟動與關閉按鈕。當點擊預覽面板是就會彈出一個彈出菜單,可以對圖片進行編輯處理。圖5.1.1如圖5.1.2所示,當點擊啟動按鈕時,就會出現一個桌面時鐘表。圖5.1.22、圖片查看功能頁面若想對圖片進行瀏覽,則可直接雙擊預覽圖片面板或者可以點擊瀏按鈕也可以點擊左鍵然后點擊彈出菜單上的瀏覽選項,則可跳入瀏覽面板頁面。如圖5.2.1所示: 圖5.2.1當鼠標移動到不同位置時,工具面板會相應地發生變化,如圖5.2.2所示,當鼠標移動到下一張位置時,界面發生的變化。圖5.2.2當點擊工具面板上的幻燈片按鈕或按Enter鍵時,就出現了如圖5.2.3所示的頁面。在此頁面中圖片以一定時間間隔播放圖片,這個時間間隔可以用戶自己設置,用戶可以暫停,也可以自己點擊進行切換圖片。圖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

溫馨提示

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

評論

0/150

提交評論