将图片压缩

来源:互联网 发布:淘宝优惠怎么设置 编辑:程序博客网 时间:2024/04/29 14:40

 ublic class SimPicture {
 public SimPicture() {

 }
    /**
     *
     * @param url 要压缩的源图片文件
     * @param simurl 压缩出的图片文件
     * @param width  要压缩出的图片的宽度
     * @return
     */
 public static boolean doSimPicture(File url,File simurl,int width) {
  boolean flag=false;
      try {
            //System.out.println("进入====");
             AffineTransform transform = new AffineTransform();
             System.out.println(url);
             BufferedImage bis = ImageIO.read(url);

             int w = bis.getWidth();
             int h = bis.getHeight();
               //double scale = (double)w/h;

             //int nw = 120;
             int nh = (width * h) / w;
             if(nh>300) {
                 nh = 300;
                 width = (nh * w) / h;
             }

             double sx = (double)width / w;
             double sy = (double)nh / h;
              transform.setToScale(sx,sy);
               AffineTransformOp ato = new AffineTransformOp(transform, null);
             BufferedImage bid = new BufferedImage(width, nh, BufferedImage.TYPE_3BYTE_BGR);
             //TYPE_3BYTE_BGR
             ato.filter(bis,bid);
             ImageIO.write(bid, "jpeg", simurl);
             flag=true;
               } catch(Exception e) {
          flag=false;
             e.printStackTrace();
         }
         return flag;
 }

 }