Convertir image couleur en niveaux de gris

antoine2468 Messages postés 1 Date d'inscription mardi 19 juin 2007 Statut Membre Dernière intervention 6 avril 2008 - 6 avril 2008 à 15:37
makramwahi Messages postés 3 Date d'inscription lundi 7 décembre 2009 Statut Membre Dernière intervention 31 mai 2010 - 7 déc. 2009 à 09:02
Bonjour,

Je cherche à tranformer une image couleur en niveaux de gris.

Voici le début de mon code :

import java.awt.image.Raster;
import javax.media.jai.*;
import java.awt.image.*;

public abstract class convertir {
 
    public static void main(String[] args) {
       
        PlanarImage img = JAI.create("fileload", "image.jpg");
        Raster raster = img.getData();
       
        int[] pixels = new int[3];
        int[] pixelgris = new int[1];
       
        for (int i=0;iJ'obtiens, pour chaque pixel couleur de mon image, la valeur du pixel gris correspondant : j'ai donc tous les pixels de mon image en niveux de gris. Mon problème est d'enregistrer ces valeurs dans un raster : en gros, je cherche à faire raster.setPixels(*) - ce qui n'existe pas. J'ai vu qu'il existait WritableRaster, mais je n'arrive pas du tout à comprendre comment ça marche.

Merci beaucoup pour votre aide,
Bonne journée

2 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
6 avril 2008 à 16:25
Salut:

import java.awt.image.BufferedImage;
import java.awt.image.ColorConvertOp;
import java.awt.color.ColorSpace;
/**
  * Transformer une image colorée en Niveau de gris.
  */
BufferedImage toGray (BufferedImage bi) {
    ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);   
    ColorConvertOp op = new ColorConvertOp(cs, null);
   
    return op.filter(bi, null);
}
0
Rejoignez-nous