图片截取(裁剪)

    public static void cutImage(File file) {
        String fileName = file.getPath();
        String lastName = fileName.substring(fileName.lastIndexOf(".") + 1,fileName.length());
        FileInputStream fis = null;
        ImageInputStream iis = null;
        try {
            /**读取图片*/
            Iterator<ImageReader> it = ImageIO.getImageReadersByFormatName(lastName);
            ImageReader reader = it.next();
            /**获取图片流*/
            fis = new FileInputStream(file);
            iis = ImageIO.createImageInputStream(fis);
            reader.setInput(iis, true);

            ImageReadParam param = reader.getDefaultReadParam();
            BufferedImage image = null;
            image = ImageIO.read(file);
            int width = image.getWidth();
            int height = image.getHeight();
            Rectangle rect;
            if (300 < height) {
                rect = new Rectangle(0, 0, width, height-50);
            } else {
                rect = new Rectangle(0, 0, width, height);
            }
            param.setSourceRegion(rect);
            BufferedImage bi = reader.read(0, param);

            ImageIO.write(bi, lastName, file);
        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            try {
                if (fis != null) {
                    fis.close();
                }
                if (iis != null) {
                    iis.close();
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
    }

原文地址:https://www.cnblogs.com/sand-tiny/p/3582794.html