资源描述:
《java图片裁剪和java生成缩略图》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、java图片裁剪和java生成缩略图一、缩略图在浏览相册的时候,可能需要生成相应的缩略图。直接上代码:publicclassImageUtil{privateLoggerlog=LoggerFactory.getLogger(getClass());privatestaticStringDEFAULT_PREVFIX="thumb_";privatestaticBooleanDEFAULT_FORCE=false;//建议该值为false/***
Title:thumbnailImage
*
Descrip
2、tion:根据图片路径生成缩略图
*@paramimagePath原图片路径*@paramw缩略图宽*@paramh缩略图高*@paramprevfix生成缩略图的前缀*@paramforce是否强制按照宽高生成缩略图(如果为false,则生成最佳比例缩略图)*/publicvoidthumbnailImage(StringimagePath,intw,inth,Stringprevfix,booleanforce){FileimgFile=newFile(imagePath);if(imgFile.exists(
3、)){try{//ImageIO支持的图片类型:[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);}//类型和图片后缀全部小写,然后判断后缀是否合法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){//根据原图与要求的缩略图比例,找到最合适的缩略图比例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()