前面在做项目的时候,有一个需求是需要上传图片的,然而该图片只是简单的展示一些信息,不需要很大,所以在上传图片的时候改变图片的大小就显得很有必要了!然后就写了下面这个方法来改变图片的大小!

Java代码 
  1. /** 
  2.  * 改变图片的大小到宽为size,然后高随着宽等比例变化 
  3.  * @param is 上传的图片的输入流 
  4.  * @param os 改变了图片的大小后,把图片的流输出到目标OutputStream 
  5.  * @param size 新图片的宽 
  6.  * @param format 新图片的格式 
  7.  * @throws IOException 
  8.  */  
  9. public  static  void resizeImage(InputStream is, OutputStream os,  int size, String format)  throws IOException {  
  10.     BufferedImage prevImage = ImageIO.read(is);  
  11.      double width = prevImage.getWidth();  
  12.      double height = prevImage.getHeight();  
  13.      double percent = size/width;  
  14.      int newWidth = ( int)(width * percent);  
  15.      int newHeight = ( int)(height * percent);  
  16.     BufferedImage image =  new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_BGR);  
  17.     Graphics graphics = image.createGraphics();  
  18.     graphics.drawImage(prevImage,  0,  0, newWidth, newHeight,  null);  
  19.     ImageIO.write(image, format, os);  
  20.     os.flush();  
  21.     is.close();  
  22.     os.close();  
09-28 06:16