資源描述:
《java圖片裁剪和java生成縮略圖》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、java圖片裁剪和java生成縮略圖一、縮略圖在瀏覽相冊(cè)的時(shí)候,可能需要生成相應(yīng)的縮略圖。直接上代碼:publicclassImageUtil{privateLoggerlog=LoggerFactory.getLogger(getClass());privatestaticStringDEFAULT_PREVFIX="thumb_";privatestaticBooleanDEFAULT_FORCE=false;//建議該值為false/***
Title:thumbnailImage
*
Descrip
2、tion:根據(jù)圖片路徑生成縮略圖
*@paramimagePath原圖片路徑*@paramw縮略圖寬*@paramh縮略圖高*@paramprevfix生成縮略圖的前綴*@paramforce是否強(qiáng)制按照寬高生成縮略圖(如果為false,則生成最佳比例縮略圖)*/publicvoidthumbnailImage(StringimagePath,intw,inth,Stringprevfix,booleanforce){FileimgFile=newFile(imagePath);if(imgFile.exists(
3、)){try{//ImageIO支持的圖片類(lèi)型:[BMP,bmp,jpg,JPG,wbmp,jpeg,png,PNG,JPEG,WBMP,GIF,gif]Stringtypes=Arrays.toString(ImageIO.getReaderFormatNames());Stringsuffix=null;//獲取圖片后綴if(imgFile.getName().indexOf(".")>-1){suffix=imgFile.getName().substring(imgFile.getName().lastIndex
4、Of(".")+1);}//類(lèi)型和圖片后綴全部小寫(xiě),然后判斷后綴是否合法if(suffix==null
5、
6、types.toLowerCase().indexOf(suffix.toLowerCase())<0){log.error("Sorry,theimagesuffixisillegal.thestandardimagesuffixis{}."+types);return;}log.debug("targetimage'ssize,width:{},height:{}.",w,h);Imageimg=ImageIO.
7、read(imgFile);if(!force){//根據(jù)原圖與要求的縮略圖比例,找到最合適的縮略圖比例intwidth=img.getWidth(null);intheight=img.getHeight(null);if((width*1.0)/w<(height*1.0)/h){if(width>w){h=Integer.parseInt(newjava.text.DecimalFormat("0").format(height*w/(width*1.0)));log.debug("changeimage'shei
8、ght,width:{},height:{}.",w,h);}}else{if(height>h){w=Integer.parseInt(newjava.text.DecimalFormat("0").format(width*h/(height*1.0)));log.debug("changeimage'swidth,width:{},height:{}.",w,h);}}}BufferedImagebi=newBufferedImage(w,h,BufferedImage.TYPE_INT_RGB);Graphics
9、g=bi.getGraphics();g.drawImage(img,0,0,w,h,Color.LIGHT_GRAY,null);g.dispose();Stringp=imgFile.getPath();//將圖片保存在原目錄并加上前綴ImageIO.write(bi,suffix,newFile(p.substring(0,p.lastIndexOf(File.separator))+File.separator+prevfix+imgFile.getName()));log.debug("縮略圖在原路徑下生成成功
10、");}catch(IOExceptione){log.error("generatethumbnailimagefailed.",e);}}else{log.warn("theimageisnotexist.");}}publicstaticvoidmain(String[]args){newImageUtil()