ImageIO en Java
-
Utiliser
ImageIO
pour lire une image en Java -
Utilisez
ImageIO
pour écrire une image et modifier le format en Java
ImageIO
est une classe en Java, une partie du package javax.imageio
contenant diverses méthodes pour effectuer des opérations comme la lecture ou l’écriture d’une image.
Nous apprendrons à utiliser la classe ImageIO
pour lire et écrire une image dans les sections suivantes.
Utiliser ImageIO
pour lire une image en Java
On utilise la fonction read()
de la classe ImageIO
pour lire une image. Dans le programme, nous créons un objet File
et passons le chemin du fichier comme argument dans le constructeur.
Nous appelons la méthode read()
en utilisant ImageIO
et la passons dans l’objet file
qui renvoie l’objet BufferedImage
. Nous avons réussi à lire l’image, et nous utilisons un JFrame
et ImageIcon
pour afficher l’image dans une fenêtre.
Nous créons une fonction setImageToFrame()
et envoyons le bufferedImage
comme argument. Dans la fonction setImageToFrame()
, nous créons un objet de ImageIcon
et le définissons comme l’icône de JLabel
à l’aide de la fonction setIcon()
.
Une fois que nous avons ajouté l’étiquette au cadre et exécuté le programme, nous pouvons voir l’image dans la sortie.
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
public class JavaExample {
public static void main(String[] args) {
try {
File file = new File(
"C:\\Users\\Rupam Saini\\IdeaProjects\\Java Examples\\src\\main\\java\\sample_image.jpg");
BufferedImage bufferedImage = ImageIO.read(file);
setImageToFrame(bufferedImage);
} catch (IOException e) {
e.printStackTrace();
}
}
static void setImageToFrame(BufferedImage image) {
ImageIcon imageIcon = new ImageIcon(image);
JFrame jFrame = new JFrame();
jFrame.setLayout(new FlowLayout());
jFrame.setSize(700, 500);
JLabel jLabel = new JLabel();
jLabel.setIcon(imageIcon);
jFrame.add(jLabel);
jFrame.setVisible(true);
jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Production :
On peut aussi utiliser la fonction read()
pour lire une image à partir d’un lien.
Nous devons créer un objet URL
et utiliser le lien vers l’image comme constructeur d’argument. Nous passons l’objet URL
à la méthode read()
.
URL url = new URL(
"https://images.unsplash.com/photo-1516475429286-465d815a0df7?ixlib=rb-1.2.1&q=80&fm=jpg&crop=entropy&cs=tinysrgb&dl=will-klinzman-oaCD9WYdNlU-unsplash.jpg&w=640");
BufferedImage bufferedImage = ImageIO.read(url);
Production :
Utilisez ImageIO
pour écrire une image et modifier le format en Java
Une autre opération utile que nous pouvons faire en utilisant la classe ImageIO
est d’écrire une image et de changer son format. On lit d’abord l’image comme dans l’exemple précédent puis on appelle la fonction write()
de la classe ImageIO
qui prend trois arguments.
Le premier argument de la méthode write()
est l’objet BufferedImage
. Le deuxième argument est le format ou l’extension dans lequel nous voulons écrire la nouvelle image. Le dernier argument est l’objet File
qui a le chemin vers la nouvelle image avec la nouvelle extension.
Dans notre exemple, nous changeons le format de notre image de JPG
à PNG
. Nous avons deux images : l’image originale et l’autre image que nous avons créée en utilisant la méthode write()
.
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class JavaExample {
public static void main(String[] args) {
try {
File file = new File(
"C:\\Users\\Rupam Saini\\IdeaProjects\\Java Examples\\src\\main\\java\\sample_image.jpg");
BufferedImage bufferedImage = ImageIO.read(file);
ImageIO.write(bufferedImage, "png",
new File(
"C:\\Users\\Rupam Saini\\IdeaProjects\\Java Examples\\src\\main\\java\\sample_image.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
Production :
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn