Comment redimensionner une image en Java

En Java, pour redimensionner (ou mettre à l’échelle) une image et l’enregistrer, nous pouvons suivre les étapes suivantes:

  1. Créez un objet BufferedImage pour l’image d’entrée en appelant la méthode read() de la classe ImageIO.
  2. Créez un objet BufferedImage pour l’image de sortie avec une largeur et une hauteur souhaitées.
  3. Obtenez un objet Graphics2D à partir de l’objet BufferedImage de l’image de sortie.
  4. Dessinez l’objet BufferedImage de l’image d’entrée sur l’objet Graphics2D de l’image de sortie.
  5. Enregistrez l’image de sortie dans un fichier en utilisant la méthode write() de la classe ImageIO.

 
 

Exemple:
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
import java.io.*;

 
public class ResizeImg 
{
 public static void changeSize(String inImg, String outImg, int w, int h)
 throws IOException 
 {
      // lit l'image d'entrée
      File f = new File(inImg);
      BufferedImage inputImage = ImageIO.read(f);
 
      // crée l'image de sortie
      BufferedImage img = new BufferedImage(w, h, inputImage.getType());
 
      // balancer l'image d'entrée à l'image de sortie
      Graphics2D g = img.createGraphics();
      g.drawImage(inputImage, 0, 0, w, h, null);
      g.dispose();
 
      // extrait l'extension du fichier de sortie
      String name = outImg.substring(outImg.lastIndexOf(".") + 1);
 
      // écrit dans le fichier de sortie
      ImageIO.write(img, name, new File(outImg));
 }
 
 public static void main(String[] args) 
 {
        String inImg = "test.jpg";
        String outImg = "test_1200x628.jpg";
 
        try 
        {
            int width = 1200;
            int height = 628;
            ResizeImg.changeSize(inImg, outImg, width, height);
        }
        catch (IOException ex) 
        {
            ex.printStackTrace();
        }
 }
}

 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *