Dans cet exemple, voyons comment transformer une photo en couleur en nuance de gris avec JAVA. L'image est au format PNG et représente ma nouvelle voiture: une bugatti Veyron -;)
Plusieurs méthodes sont possibles en JAVA (
ColorConvertOp, GrayFilter et Graphics ). Cet exemple utilise les fonctions suivantes pour redessiner les photos:
-
ImageIO.read: charger l'image en couleur,
-
BufferedImage: créer une image tampon grisée,
-
drawImage: dessiner la photo sur le tampon,
- ImageIO.write: enregistrer l'image en noir et blanc.
La class ImageGrayScal: redessiner la Bugatti Veyron en noir et blanc import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
/**
* Convertir une image en nuance de gris
* @author Axel - ® fobec.com 2010
*/
public class ImageGrayScale {
/**
* Image d'entrée en couleur
*/
private static String inFilename = "C:\\bugatti_veyron.png";
/**
* Image de sortie en nuance de gris
*/
private static String outFilename = "C:\\bugatti_veyron_gray.png";
public static void main(String args[]) {
try {
System.out.println("Début de conversion....");
//Ouverture du fichier
File inputFile = new File(inFilename);
BufferedImage imagesrc = ImageIO.read(inputFile);
//Convertion en grisé
BufferedImage imagedst = new BufferedImage(imagesrc.getWidth(), imagesrc.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
Graphics g = imagedst.getGraphics();
g.drawImage(imagesrc, 0, 0, null);
g.dispose();
//Enregistrer l'image au format PNG
File outFile = new File(outFilename);
ImageIO.write(imagedst, "PNG", outFile);
System.out.println("Fin de conversion....");
} catch (IOException ex) {
Logger.getLogger(ImageGrayScale.class.getName()).log(Level.SEVERE, null, ex);
}
}
}