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程序设计有所帮助。