版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、方法1:第一種方法比后一種生成的縮略圖要清晰Java代碼1.importjavax.imageio.ImageIO;2.importjava.awt.image.BufferedImage;3.importjava.awt.image.ColorModel;4.importjava.awt.image.WritableRaster;5.importjava.awt.*;6.importjava.awt.geom.AffineTransform;7.importjava.io.InputStream;8.importjava.io.File;9.importjava.io.FileOutputS
2、tream;10.11.publicclassTest12.publicstaticBufferedImageresize(BufferedImagesource,inttargetW,inttargetH)13./targetW,targetH分別表示目標(biāo)長和寬inttype=source.getType();BufferedImagetarget=null;doublesx=(double)targetW/source.getWidth();doublesy=(double)targetH/source.getHeight();18./這里想實現(xiàn)在targetW,targetH范圍內(nèi)實現(xiàn)等
3、比縮放。如果不需要等比縮放19./則將下面的ifelse語句注釋即可if(sxsy)sx=sy;targetW=(int)(sx*source.getWidth();elsesy=sx;targetH=(int)(sy*source.getHeight();if(type=BufferedImage.TYPE_CUSTOM)/handmadeColorModelcm=source.getColorModel();WritableRasterraster=cm.createCompatibleWritableRaster(targetW,targetH);booleanalphaPremulti
4、plied=cm.isAlphaPremultiplied();target=newBufferedImage(cm,raster,alphaPremultiplied,null);elsetarget=newBufferedImage(targetW,targetH,type);Graphics2Dg=target.createGraphics();/smootherthanexlax:g.setRenderingHint(RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);g.drawRenderedImage
5、(source,AffineTransform.getScaleInstance(sx,sy);g.dispose();returntarget;publicstaticvoidsaveImageAsJpg(StringfromFileStr,StringsaveToFileStr,intwidth,inthight)throwsExceptionBufferedImagesrcImage;/Stringex=fromFileStr.substring(fromFileStr.indexOf(.),fromFileStr.length();StringimgType=JPEG;if(fromF
6、ileStr.toLowerCase().endsWith(.png)imgType=PNG;/System.out.println(ex);FilesaveFile=newFile(saveToFileStr);FilefromFile=newFile(fromFileStr);srcImage=ImageIO.read(fromFile);if(width0|hight0)srcImage=resize(srcImage,width,hight);ImageIO.write(srcImage,imgType,saveFile);59.60.61.publicstaticvoidmain(S
7、tringargv)try參數(shù)1(from),參數(shù)2(to),參數(shù)3(寬),參數(shù)4(高)Test.saveImageAsJpg(E:/Document/MyPictures/3.gif,c:/6.gif,50,50);catch(Exceptione)e.printStackTrace();70.importjavax.imageio.ImageIO;importjava.awt.image.BufferedImage;importjava.awt.image.ColorModel;importjava.awt.image.WritableRaster;importjava.awt.*;imp
8、ortjava.awt.geom.AffineTransform;importjava.io.InputStream;importjava.io.File;importjava.io.FileOutputStream;publicclassTestpublicstaticBufferedImageresize(BufferedImagesource,inttargetW,inttargetH)/targetW,targetH分別表示目標(biāo)長和寬inttype=source.getType();BufferedImagetarget=null;doublesx=(double)targetW/so
9、urce.getWidth();doublesy=(double)targetH/source.getHeight();/這里想實現(xiàn)在targetW,targetH范圍內(nèi)實現(xiàn)等比縮放。如果不需要等比縮放/則將下面的ifelse語句注釋即可if(sxsy)sx=sy;targetW=(int)(sx*source.getWidth();elsesy=sx;targetH=(int)(sy*source.getHeight();if(type=BufferedImage.TYPE_CUSTOM)/handmadeColorModelcm=source.getColorModel();Writabl
10、eRasterraster=cm.createCompatibleWritableRaster(targetW,targetH);booleanalphaPremultiplied=cm.isAlphaPremultiplied();target=newBufferedImage(cm,raster,alphaPremultiplied,null);elsetarget=newBufferedImage(targetW,targetH,type);Graphics2Dg=target.createGraphics();/smootherthanexlax:g.setRenderingHint(
11、RenderingHints.KEY_RENDERING,RenderingHints.VALUE_RENDER_QUALITY);g.drawRenderedImage(source,AffineTransform.getScaleInstance(sx,sy);g.dispose();returntarget;publicstaticvoidsaveImageAsJpg(StringfromFileStr,StringsaveToFileStr,intwidth,inthight)throwsExceptionBufferedImagesrcImage;/Stringex=fromFile
12、Str.substring(fromFileStr.indexOf(.),fromFileStr.length();StringimgType=JPEG;if(fromFileStr.toLowerCase().endsWith(.png)imgType=PNG;/System.out.println(ex);FilesaveFile=newFile(saveToFileStr);FilefromFile=newFile(fromFileStr);srcImage=ImageIO.read(fromFile);if(width0|hight0)srcImage=resize(srcImage,
13、width,hight);ImageIO.write(srcImage,imgType,saveFile);publicstaticvoidmain(Stringargv)try參數(shù)1(from),參數(shù)2(to),參數(shù)3(寬),參數(shù)4(高)Test.saveImageAsJpg(E:/Document/MyPictures/3.gif,c:/6.gif,50,50);catch(Exceptione)e.printStackTrace();方法2:Java代碼importjava.io.*;importjava.util.*;importcom.sun.image.codec.jpeg.*;i
14、mportjava.awt.image.*;importjava.awt.*;.*;importjava.applet.*;importjava.sql.*;9.10./縮略圖類,/本java類能將jpg圖片文件,進(jìn)行等比或非等比的大小轉(zhuǎn)換。/具體使用方法/s_pic(大圖片路徑,生成小圖片路徑,大圖片文件名,生成小圖片文名,生成小圖片寬度,生成小圖片高度,是否等比縮放(默認(rèn)為true)publicclassTesStringInputDir;/輸入圖路徑StringOutputDir;/輸出圖路徑StringInputFileName;/輸入圖文件名StringOutputFileName;
15、/輸出圖文件名intOutputWidth=80;/默認(rèn)輸出圖片寬intOutputHeight=80;/默認(rèn)輸出圖片高intrate=0;booleanproportion=true;/是否等比縮放標(biāo)記(默認(rèn)為等比縮放)23.publicTes()/初始化變量InputDir=;OutputDir=;InputFileName=;OutputFileName=;OutputWidth=80;OutputHeight=80;rate=0;34.publicvoidsetInputDir(StringInputDir)this.InputDir=InputDir;38.publicvoidset
16、OutputDir(StringOutputDir)this.OutputDir=OutputDir;42.publicvoidsetInputFileName(StringInputFileName)this.InputFileName=InputFileName;46.publicvoidsetOutputFileName(StringOutputFileName)this.OutputFileName=OutputFileName;50.publicvoidsetOutputWidth(intOutputWidth)this.OutputWidth=OutputWidth;54.publ
17、icvoidsetOutputHeight(intOutputHeight)this.OutputHeight=OutputHeight;58.publicvoidsetW_H(intwidth,intheight)this.OutputWidth=width;this.OutputHeight=height;63.publicStrings_pic()BufferedImageimage;StringNewFileName;67./建立輸出文件對象68.Filefile=newFile(OutputDir+OutputFileName);69.FileOutputStreamtempout=
18、null;trytempout=newFileOutputStream(file);catch(Exceptionex)System.out.println(ex.toString();Imageimg=null;Toolkittk=Toolkit.getDefaultToolkit();Appletapp=newApplet();MediaTrackermt=newMediaTracker(app);tryimg=tk.getImage(InputDir+InputFileName);mt.addImage(img,0);mt.waitForID(0);catch(Exceptione)e.
19、printStackTrace();86.if(img.getWidth(null)=-1)System.out.println(cantread,retry!+);returnno;elseintnew_w;intnew_h;if(portion=true)/判斷是否是等比縮放./為等比縮放計算輸出的圖片寬度及高度doublerate1=(double)img.getWidth(null)/(double)OutputWidth+0.1;doublerate2=(double)img.getHeight(null)/(double)OutputHeight+0.1;doubl
20、erate=rate1rate2?rate1:rate2;new_w=(int)(double)img.getWidth(null)/rate);new_h=(int)(double)img.getHeight(null)/rate);elsenew_w=OutputWidth;/輸出的圖片寬度new_h=OutputHeight;/輸出的圖片高度BufferedImagebuffImg=newBufferedImage(new_w,new_h,BufferedImage.TYPE_INT_RGB);108.109.Graphicsg=buffImg.createGraphics();110.
21、111.g.setColor(Color.white);112.g.fillRect(0,0,new_w,new_h);113.114.g.drawImage(img,0,0,new_w,new_h,null);115.g.dispose();116.JPEGImageEncoderencoder=JPEGCodec.createJPEGEncoder(tempout);tryencoder.encode(buffImg);tempout.close();catch(IOExceptionex)System.out.println(ex.toString();returnok;127.publicStrings_pic(StringInputDir,StringOutputDir,StringInputFileName,StringOutputFileName)/輸入
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智慧城市基礎(chǔ)設(shè)施搭建委托協(xié)議4篇
- 2025年度個人二手車買賣合同范本標(biāo)準(zhǔn)版4篇
- 顫音音響發(fā)生器課程設(shè)計
- 2024碎石加工廠產(chǎn)品質(zhì)量追溯體系建立合同范本3篇
- 2025年醫(yī)藥用品運輸合同規(guī)范文本4篇
- 二零二五年度棉紗現(xiàn)貨交易市場參與資格準(zhǔn)入合同范本3篇
- 2025年度生態(tài)公園建設(shè)與改造合同4篇
- 2025年度房地產(chǎn)買賣合同糾紛解決機制補充協(xié)議4篇
- 2025版新能源項目施工勞務(wù)分包合同范本4篇
- 2025年度個人車輛借用及押金退還合同4篇
- 第22單元(二次函數(shù))-單元測試卷(2)-2024-2025學(xué)年數(shù)學(xué)人教版九年級上冊(含答案解析)
- 藍(lán)色3D風(fēng)工作總結(jié)匯報模板
- 安全常識課件
- 河北省石家莊市2023-2024學(xué)年高一上學(xué)期期末聯(lián)考化學(xué)試題(含答案)
- 2024年江蘇省導(dǎo)游服務(wù)技能大賽理論考試題庫(含答案)
- 2024年中考英語閱讀理解表格型解題技巧講解(含練習(xí)題及答案)
- 新版中國食物成分表
- 浙江省溫州市溫州中學(xué)2025屆數(shù)學(xué)高二上期末綜合測試試題含解析
- 2024年山東省青島市中考生物試題(含答案)
- 保安公司市場拓展方案-保安拓展工作方案
- GB/T 15843.2-2024網(wǎng)絡(luò)安全技術(shù)實體鑒別第2部分:采用鑒別式加密的機制
評論
0/150
提交評論