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:
- Créez un objet BufferedImage pour l’image d’entrée en appelant la méthode read() de la classe ImageIO.
- Créez un objet BufferedImage pour l’image de sortie avec une largeur et une hauteur souhaitées.
- Obtenez un objet Graphics2D à partir de l’objet BufferedImage de l’image de sortie.
- Dessinez l’objet BufferedImage de l’image d’entrée sur l’objet Graphics2D de l’image de sortie.
- 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();
}
}
}

