Publié le 16/01/2011
Auteur axel
Réseaux sociaux
0 partages
0 tweets
0 plus
2 commentaires

Convertir une image en nuance de gris

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 -;)

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.

bugatti_veyronbugatti_veyron_gray










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);
        }
    }
}

Ajouter un commentaire

Les champs marqués d'un * sont obligatoires, les adresses emails se sont pas publiées.
avatar Coll

Publié par Coll

le 17/12/2014 à 17:28:21

Excuse moi, mais pourrais tu expliquer un peu plus precisement ce que tu fais lorsque tu convertis en gris je comprends l'idee mais pas ce que chaque action fait precisement et le cacth a la fin. Parce que ton code marche et j'aimerais le reutiliser mais j'aimerais le comprendre avant!
Merci

avatar Axel

Publié par Axel

le 18/12/2014 à 09:04:35

L'astuce de la conversion en gris se situe dans imagedst.
Le BufferedImage imagesrc contient l'image en couleur, imagedst est une image cree en nuance de gris. Lorsque l'on copie l'image colorisee vers le BufferedImage imagedst, la conversion en noir et blanc est faite automatiquement.
Le catch sert juste recuperer une erreur sur la lecture de l'image colorisee.

A lire aussi

Réseaux sociaux
Présentation de l'article
Catégorie
java - sources
Mise a jour
16/01/2011
Visualisation
vu 9519 fois
Public
Internaute
Auteur de la publication
Axel
Membre junior
Auteur de 51 articles
|BIO_PSEUDO|
Commentaires récents

Publié par makanaki dans logiciel

je veux essayer ce logiciel pour tester les jeux de loto de chez nous

Publié par hilflo dans tuto

Tres bon article qui montre bien les subtilites des mutualises de 1and1.
Je l'ai utilise pour un de mes sites en y ajoutant de l'url rewriting pour eviter d'avoir des parametres dans l'url avec cet...

Publié par jadu dans tuto

Et comment met-on en route Xinha lorsque l'extension a été chargée dans Firefox ?????

je n'ai rien trouvé !!!

Publié par romainN dans tuto

Bonjour,

Super tuto bravo! Je suis sur Wordpress 3.5 et 1and1 et la ligne HTML que je dois modifier est prsente dans plusieurs php et elle comprend des echo:

echo \\ dans le fichier wp-...

Publié par Fobec dans tuto

Les liens vers les feuilles de style sont definis dans le template. L'emplacement sur le FTP depend du CMS utilise, par exemple sous WordPress les fichiers sont dans le dossier '/wpcontent/themes'