2010-11-17 52 views
0

我正在处理java中的图像比较。我想在比较图像之前,最好处理图像以设置固定大小的图像。是否有任何Java功能来调整图像大小。我想将图像重新缩放到300 * 225。在java中调整jpeg图像

回答

2
 

public ImageIcon resizeImage(String filePath, int w, int h) { 


     String data = filePath; 
     BufferedImage bsrc, bdest; 
     ImageIcon theIcon; 

//scale the image 
     try 
     { 

      bsrc = ImageIO.read(new File(data)); 

      bdest = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB); 
      Graphics2D g = bdest.createGraphics(); 
      AffineTransform at = AffineTransform.getScaleInstance((double) w/bsrc.getWidth(), 
        (double) h/bsrc.getHeight()); 
      g.drawRenderedImage(bsrc, at); 

      //add the scaled image 
      theIcon = new ImageIcon(bdest); 
      return theIcon; 
     } 
     catch (Exception e) 
     { 
      System.out.println("This image can not be resized. Please check the path and type of file."); 
      return null; 
     } 

    } 

 
2
BufferedImage createResizedCopy(Image originalImage, 
       int scaledWidth, int scaledHeight, 
       boolean preserveAlpha) 
{ 
    int imageType = preserveAlpha ? BufferedImage.TYPE_INT_RGB : BufferedImage.TYPE_INT_ARGB; 
    BufferedImage scaledBI = new BufferedImage(scaledWidth, scaledHeight, imageType); 
    Graphics2D g = scaledBI.createGraphics(); 
    if (preserveAlpha) { 
      g.setComposite(AlphaComposite.Src); 
    } 
    g.drawImage(originalImage, 0, 0, scaledWidth, scaledHeight, null); 
    g.dispose(); 
    return scaledBI; 
} 
4
BufferedImage img = ImageIO.read(imageFile); 
Image scaled = img.getScaledInstance(300, 255, Image.SCALE_DEFAULT); 

您还可以看看java-image-scaling库。