import java.awt.Rectangle; import java.awt.image.BufferedImage; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.util.Iterator; import javax.imageio.ImageIO; import javax.imageio.ImageReadParam; import javax.imageio.ImageReader; import javax.imageio.stream.ImageInputStream; public class ImageUtil { public static void cutImg(int topSrc, int leftSrc, int cutWidthSrc, int cutHeightSrc, String imgSrc, String imgDist) { FileInputStream is = null; ImageInputStream iis = null; try { is = new FileInputStream(imgSrc); String format = imgSrc.substring(imgSrc.lastIndexOf(".") + 1).toLowerCase(); Iterator it = ImageIO.getImageReadersByFormatName(format); ImageReader reader = (ImageReader)it.next(); iis = ImageIO.createImageInputStream(is); reader.setInput(iis, true); ImageReadParam param = reader.getDefaultReadParam(); Rectangle rect = new Rectangle(leftSrc, topSrc, cutWidthSrc, cutHeightSrc); param.setSourceRegion(rect); BufferedImage bi = reader.read(0, param); File fileTemp = new File(imgDist); if (!(fileTemp.getParentFile().exists())) { fileTemp.getParentFile().mkdirs(); } if (fileTemp.exists()) { fileTemp.delete(); } ImageIO.write(bi, format, fileTemp); } catch (Exception e) { e.printStackTrace(); } finally { if (is != null) try { is.close(); } catch (IOException localIOException2) { } if (iis != null) try { iis.close(); } catch (IOException localIOException3) { } } } }
配合http://www.zhangxinxu.com/jq/jcrop_zh/demo/crop.php使用