java实现图片裁切的工具类实例
本文实例讲述了java实现图片裁切的工具类。分享给大家供大家参考,具体如下:
packagecom.yanek.util; importjava.awt.Rectangle; importjava.awt.image.BufferedImage; importjava.io.File; importjava.io.FileInputStream; importjava.io.IOException; importjava.util.Iterator; importjavax.imageio.ImageIO; importjavax.imageio.ImageReadParam; importjavax.imageio.ImageReader; importjavax.imageio.stream.ImageInputStream; publicclassImgCutUtil{ /** *@paramargs */ publicstaticvoidmain(String[]args){ ImgCutUtil.cut(30,50,300,400,"d:/1.jpg","d:/100.jpg"); } /** *图片裁切 *@paramx1选择区域左上角的x坐标 *@paramy1选择区域左上角的y坐标 *@paramwidth选择区域的宽度 *@paramheight选择区域的高度 *@paramsourcePath源图片路径 *@paramdescpath裁切后图片的保存路径 */ publicstaticvoidcut(intx1,inty1,intwidth,intheight, StringsourcePath,Stringdescpath){ FileInputStreamis=null; ImageInputStreamiis=null; try{ is=newFileInputStream(sourcePath); StringfileSuffix=sourcePath.substring(sourcePath .lastIndexOf(".")+1); Iterator<ImageReader>it=ImageIO .getImageReadersByFormatName(fileSuffix); ImageReaderreader=it.next(); iis=ImageIO.createImageInputStream(is); reader.setInput(iis,true); ImageReadParamparam=reader.getDefaultReadParam(); Rectanglerect=newRectangle(x1,y1,width,height); param.setSourceRegion(rect); BufferedImagebi=reader.read(0,param); ImageIO.write(bi,fileSuffix,newFile(descpath)); }catch(Exceptionex){ ex.printStackTrace(); }finally{ if(is!=null){ try{ is.close(); }catch(IOExceptione){ e.printStackTrace(); } is=null; } if(iis!=null){ try{ iis.close(); }catch(IOExceptione){ e.printStackTrace(); } iis=null; } } } }
希望本文所述对大家Java程序设计有所帮助。