code: public static BufferedImage scale(BufferedImage im, int w, int h) {
          // 获得尺寸
          int oW = im.getWidth();
          int oH = im.getHeight();
  
          int nW = w, nH = h;
  
          /*
           * 缩放
           */
          // 未指定图像高度，根据原图尺寸计算出高度
          if (h == -1) {
              nH = (int) ((float) w / oW * oH);
          }
          // 未指定图像宽度，根据原图尺寸计算出宽度
          else if (w == -1) {
              nW = (int) ((float) h / oH * oW);
          }
  
          // 创建图像
          BufferedImage re = new BufferedImage(nW, nH, im.getType());
          Graphics2D gc = re.createGraphics();
          gc.drawImage(im, 0, 0, nW, nH, null);
          gc.dispose();
          // 返回
          return re;
      }
docs: 自动等比缩放一个图片
  
  @param im
  图像对象
  @param w
  宽度
  @param h
  高度
  
  @return 被转换后的图像