




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Java面向?qū)ο蟪绦蛟O(shè)計(jì)學(xué)期作業(yè)項(xiàng)目報(bào)告題目圖片管理器組長(zhǎng)崔利歡組員趙志軍諶超塵陳慧施鳳婷系別軟件工程學(xué)院軟件學(xué)院指導(dǎo)教師付偉講師2016年6月11日目錄一、項(xiàng)目基本功能陳述 3二、項(xiàng)目進(jìn)度及工作安排 51、工作安排 52、項(xiàng)目進(jìn)度 6三、項(xiàng)目相關(guān)技術(shù) 71、圖片在面板中居中算法 72、瀏覽圖片時(shí)放大與縮小的算法 83、圖片的上下張的算法 94、播放工具欄可以隱藏算法 95、鍵盤(pán)與鼠標(biāo)交替使用算法 96、圖片編輯算法 107、編輯圖片時(shí)圖片的縮放算法 10四、項(xiàng)目設(shè)計(jì) 121、圖片瀏覽功能 122、圖片編輯功能 12五、項(xiàng)目實(shí)現(xiàn) 131、圖片查看器首頁(yè) 132、圖片查看功能頁(yè)面 143、圖片編輯功能頁(yè)面 17六、總結(jié)與展望 20項(xiàng)目基本功能陳述本項(xiàng)目是一款關(guān)于圖片管理器的應(yīng)用軟件,如圖1.1所示,功能包括圖片查看與圖片編輯兩大主要功能。如圖1.2所示,圖片查看包括以幻燈片形式播放,圖片刪除,圖片上一張,圖片下一張,圖片放大,圖片縮小等功能,如圖1.3所示,圖片編輯包括對(duì)圖片的格式轉(zhuǎn)化,圖片銳化,圖片馬賽克,圖片半透明效果,圖片模糊效果,圖片照亮,裁剪圖片等功能。 圖1.1圖1.2 圖1.3項(xiàng)目進(jìn)度及工作安排1、工作安排如表2.1.1所示,對(duì)全體小組人員進(jìn)行項(xiàng)目安排。姓名項(xiàng)目安排全體小組人員收集資料,列出項(xiàng)目需求崔利歡完成項(xiàng)目框架、編寫(xiě)項(xiàng)目報(bào)告文檔
添加編輯功能趙志軍完成幻燈片播放功能、完成小程序功能諶超塵完成項(xiàng)目報(bào)告文檔、完成圖片首頁(yè)初始化陳慧完成項(xiàng)目需求文檔,完成PPT的制作
完成圖片轉(zhuǎn)化格式功能施鳳婷完成項(xiàng)目需求文檔,完成PPT的制作
完成圖片面板查看功能表2.1.12、項(xiàng)目進(jìn)度如表2.2.1所示:時(shí)間項(xiàng)目進(jìn)度完成者2016.4.27-2016.5.3收集資料,列出項(xiàng)目需求全體小組人員2016.5.5-2016.5.10完成項(xiàng)目框架崔利歡2016.5.11-2016.5.15完成項(xiàng)目瀏覽功能崔利歡
陳慧
施鳳婷2016.5.12-2016.5.18完成項(xiàng)目幻燈片功能趙志軍
諶超塵2016.5.18-2016.6.2完成項(xiàng)目編輯功能崔利歡
趙志軍2016.6.4-2016.6.9完成項(xiàng)目整合全體小組人員表2.2.1項(xiàng)目相關(guān)技術(shù)1、圖片在面板中居中算法因?yàn)閳D片的大小不一樣,所以對(duì)圖片居中的顯示需要進(jìn)行分類(lèi)處理。對(duì)于寬度與高度都比放置圖片的面板小的,可以用屏幕的寬度(高度)減去圖片的寬度(高度)再除以2,設(shè)置起始坐標(biāo)位置。對(duì)于寬度比面板小的,而高度比面板的高度高的圖片,則圖片放置的起始位置的橫坐標(biāo)與1)中的處理方式相同,而圖片的縱坐標(biāo)的位置設(shè)置為10個(gè)像素。對(duì)于高度比面板小的,而寬度比面板的寬度寬的圖片,則圖片放置的起始位置的縱坐標(biāo)與1)中的處理方式相同,而圖片的橫坐標(biāo)的位置設(shè)置為10個(gè)像素。對(duì)于寬度與高度都比放置圖片的面板大的,則將圖片的坐標(biāo)設(shè)置為(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、瀏覽圖片時(shí)放大與縮小的算法對(duì)于圖片的縮放可以根據(jù)一個(gè)分式的分子與分母同時(shí)加上或減去原式的分子與分母的比例的倍數(shù),則分式的大小不變的原理來(lái)進(jìn)行縮放圖片。代碼如下: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);//設(shè)置位置3、圖片的上下張的算法先獲得圖片的路徑,然后根據(jù)路徑將本文件下的圖片(通過(guò)文件過(guò)濾)的絕對(duì)路徑全部加載到ArrayList的集合中,然后對(duì)集合進(jìn)行操作。4、播放工具欄可以隱藏算法在全屏播放時(shí),當(dāng)鼠標(biāo)移進(jìn)相應(yīng)的區(qū)域時(shí),工具欄面板會(huì)及時(shí)顯示出來(lái)。一個(gè)JFrame框架有許多面板層組成,最頂層的是玻璃面板,玻璃面板為不可見(jiàn),透明的,把工具欄面板添加到玻璃面板中,并且將其設(shè)置成可見(jiàn),透明的,就可以達(dá)到以上的效果。代碼如下:fullToolJPanel=newFullToolJPanel(); JPanelglasspane=newJPanel(); setGlassPane(glasspane); glasspane.add(fullToolJPanel); glasspane.setLayout(null); glasspane.setOpaque(false);getGlassPane().setVisible(true);5、鍵盤(pán)與鼠標(biāo)交替使用算法為了實(shí)現(xiàn)鍵盤(pán)與鼠標(biāo)交替的使用,在這里需用將JFrame上的所有按鈕都設(shè)置成不聚焦點(diǎn),設(shè)置的方法是jbutton.setFocusable(false);6、圖片編輯算法為了實(shí)現(xiàn)對(duì)圖片進(jìn)行編輯處理,我們使用了雙緩沖技術(shù),將image寫(xiě)到bufferImage中,然后再對(duì)bufferImage中的圖像進(jìn)行處理,最后再將bufferImage中的圖片寫(xiě)入到文件中。代碼如下(圖片放大處理): jFrame.photoJpanel.getHeight()+10);//設(shè)置位置 BufferedImagebuffImage1=newBufferedImage( jFrame.photoJpanel.getWidth(), jFrame.photoJpanel.getHeight(), BufferedImage.TYPE_3BYTE_BGR);//創(chuàng)建雙緩沖對(duì)象 Graphicsg2=buffImage1.createGraphics();//獲得畫(huà)筆 g2.drawImage(buffImage,0,0,jFrame.photoJpanel.getWidth(),// jFrame.photoJpanel.getHeight(),0,0, buffImage.getWidth(null), buffImage.getHeight(null),null);//將圖片繪到緩沖圖片中 g2.dispose();//銷(xiāo)毀畫(huà)筆 buffImage=buffImage1;//獲得緩沖引用對(duì)象7、編輯圖片時(shí)圖片的縮放算法根據(jù)瀏覽圖片進(jìn)行縮放的算法,再創(chuàng)建一個(gè)緩沖圖像,將其大小設(shè)置成要縮放后的圖片,然后再把圖片繪制到緩沖圖像中。 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);//設(shè)置位置 BufferedImagebuffImage1=newBufferedImage( jFrame.photoJpanel.getWidth(),jFrame.photoJpanel.getHeight(), BufferedImage.TYPE_3BYTE_BGR);//創(chuàng)建雙緩沖對(duì)象 Graphicsg2=buffImage1.createGraphics();//獲得畫(huà)筆 g2.drawImage(buffImage,0,0,jFrame.photoJpanel.getWidth(), jFrame.photoJpanel.getHeight(),0,0,buffImage.getWidth(null), buffImage.getHeight(null),null);//將圖片繪到緩沖圖片中 g2.dispose();//銷(xiāo)毀畫(huà)筆項(xiàng)目設(shè)計(jì)1、圖片瀏覽功能2、圖片編輯功能項(xiàng)目實(shí)現(xiàn)如圖5.1所示,點(diǎn)擊圖片查看器.exe,則可以直接進(jìn)入軟件。圖5.11、圖片查看器首頁(yè)如圖5.1.1所示,左邊是目錄導(dǎo)航,右邊是預(yù)覽窗口,預(yù)覽窗口之上有編輯按鈕,瀏覽按鈕,以及桌面小程序的啟動(dòng)與關(guān)閉按鈕。當(dāng)點(diǎn)擊預(yù)覽面板是就會(huì)彈出一個(gè)彈出菜單,可以對(duì)圖片進(jìn)行編輯處理。圖5.1.1如圖5.1.2所示,當(dāng)點(diǎn)擊啟動(dòng)按鈕時(shí),就會(huì)出現(xiàn)一個(gè)桌面時(shí)鐘表。圖5.1.22、圖片查看功能頁(yè)面若想對(duì)圖片進(jìn)行瀏覽,則可直接雙擊預(yù)覽圖片面板或者可以點(diǎn)擊瀏按鈕也可以點(diǎn)擊左鍵然后點(diǎn)擊彈出菜單上的瀏覽選項(xiàng),則可跳入瀏覽面板頁(yè)面。如圖5.2.1所示: 圖5.2.1當(dāng)鼠標(biāo)移動(dòng)到不同位置時(shí),工具面板會(huì)相應(yīng)地發(fā)生變化,如圖5.2.2所示,當(dāng)鼠標(biāo)移動(dòng)到下一張位置時(shí),界面發(fā)生的變化。圖5.2.2當(dāng)點(diǎn)擊工具面板上的幻燈片按鈕或按Enter鍵時(shí),就出現(xiàn)了如圖5.2.3所示的頁(yè)面。在此頁(yè)面中圖片以一定時(shí)間間隔播放圖片,這個(gè)時(shí)間間隔可以用戶自己設(shè)置,用戶可以暫停,也可以自己點(diǎn)擊進(jìn)行切換圖片。圖5.2.3若用戶想要退出全屏瀏覽頁(yè)面,可以直拉按Esc鍵或者可以點(diǎn)擊屏幕上的關(guān)閉按鈕,就會(huì)退到首頁(yè)頁(yè)面。如圖5.2.4所示:圖5.2.43、圖片編輯功能頁(yè)面若想對(duì)圖片進(jìn)行編輯處理,則可直接點(diǎn)擊編輯按鈕也可以點(diǎn)擊左鍵然后點(diǎn)擊彈出菜單上的編輯菜單選項(xiàng),則可跳入編輯面板頁(yè)面。如圖5.3.1所示:圖5.3.1圖片編輯頁(yè)面分為菜單欄和圖片面板,菜單欄可以對(duì)圖片進(jìn)行一系列的編輯處理,如圖5.3.2所示,圖片特效菜單功能:圖5.3.2當(dāng)點(diǎn)擊文件菜單,選擇打開(kāi),則會(huì)彈出一個(gè)新的選擇圖片對(duì)話框,可以對(duì)圖片進(jìn)行重新選擇,如圖5.3.3所示:圖5.3.4如圖5.3.5所示圖片裁剪功能:圖5.3
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025飲料分銷(xiāo)代理合同
- 2025銷(xiāo)售勞動(dòng)合同模板
- 2025公司服裝供貨合同
- 2025維修合同 設(shè)備維修合同
- 2025辦公室租賃合同附加協(xié)議
- 瓷磚銷(xiāo)售類(lèi)勞動(dòng)合同協(xié)議
- 班干部任職合同協(xié)議
- 病人護(hù)理中介合同協(xié)議
- 電力作業(yè)人員合同協(xié)議
- 皮卡配件供貨合同協(xié)議
- 非洲自然災(zāi)害
- 2023詩(shī)詞大會(huì)知識(shí)競(jìng)賽200題題庫(kù)(含答案)
- TL226 大眾試驗(yàn)測(cè)試標(biāo)準(zhǔn)
- 2023借款協(xié)議書(shū)Word模板
- 生產(chǎn)設(shè)備拆除工程施工方案
- (完整版)年產(chǎn)30萬(wàn)噸合成氨合成工段工藝設(shè)計(jì)畢業(yè)論文
- 無(wú)障礙公共設(shè)施建設(shè)的問(wèn)題及其對(duì)策研究
- 臨床醫(yī)學(xué)(專(zhuān)科)畢業(yè)綜合考復(fù)習(xí)題
- 石家莊市存量房買(mǎi)賣(mài)合同
- 思想道德與法治2023版教學(xué)設(shè)計(jì)第六章 學(xué)習(xí)法治思想 提升法治素養(yǎng)
- 自來(lái)水廠調(diào)試方案
評(píng)論
0/150
提交評(píng)論