Modifier la palette de couleur d'une image
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.


Class JAVA pour dessiner en nuance de gris
L'astuce consiste a créer une nouvelle image dont la palette contient uniquement des nuances de gris. Ainsi lors de la copie de l'image source vers l'image de destination, les couleurs sont automatiquement converties.
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);
}
}
}