图片截取上传

图片截取,前端传来截图坐标,后端进行处理

public static boolean CutImage(String path1,String path2,int x,int y,int w,int h){
       FileInputStream fileInputStream=null;
       ImageInputStream iis=null;
       boolean flag = false;

       File file = new File(path2);
       if (!file.getParentFile().exists() || file.getParentFile().isDirectory()) 
   {
      // 创建文件保存路径
           file.getParentFile().mkdirs();
   }

       try {
           //读取图片文件,建立文件输入流
           fileInputStream=new FileInputStream(path1);
           //创建图片的文件流 迭代器
           Iterator<ImageReader> it = null;
           int lastIndexOf = path1.lastIndexOf(".");
           String format = "";
           if(-1 != lastIndexOf){
               format = path1.substring(lastIndexOf+1);

           }
           if("jpg".equals(format.toLowerCase()) || "jpeg".equals(format.toLowerCase()) ){     
               it = ImageIO.getImageReadersByFormatName("jpg");
           }else if("png".equals(format.toLowerCase())){
               it = ImageIO.getImageReadersByFormatName("png");
           }
           ImageReader reader=it.next();
           //获取图片流 建立文图 文件流
           iis=ImageIO.createImageInputStream(fileInputStream);
           //获取图片默认参数
           reader.setInput(iis, true);
           ImageReadParam param=reader.getDefaultReadParam();
           //定义裁剪区域
           Rectangle rect=new Rectangle(x,y,w,h);
           param.setSourceRegion(rect);
           BufferedImage bi=reader.read(0,param);

           ImageIO.write(bi, format.toLowerCase(), file);
           flag = true;
       } catch (Exception e) {
           LOGGER.debug("图片裁剪失败,原因:");
           e.printStackTrace();
           flag = false;
       }finally{
           try {
               if(fileInputStream!=null){
                   fileInputStream.close();
               }
               if(iis!=null){
                   iis.close();
               }
           } catch (IOException e) {
               e.printStackTrace();
           }

       }
       return flag;
}

猜你喜欢

转载自blog.csdn.net/Mr1shuai/article/details/81477477
今日推荐