Image en niveau de gris

E-Pkton -  
 E-Pkton -
Bonjour, j'ai un programme à faire où lorsque j'ouvre mon image, elle est transformé en image à niveau de gris.

Le travail est réalisé sur Processing (je préfère préciser :p)

PImage img;
int longueur, largeur;


void setup() {    
        img = loadImage( "pika.jpeg" );
        longueur=img.height;
        largeur=img.width;
        int dimension = img.width * img.height;
        size(largeur, longueur);
        image( img , 0 , 0 );  
        niveauGris();
                  }

Donc ça c'est le début du code, ça me permet d'ouvrir mon image dans une fenêtre de la taille de l'image (c'était l'étape 1 à réaliser).

Mais pour faire le niveau de gris j'arrive pas à trouver comment faire, à chaque fois ça m'ouvre l'image sans changer la couleur.

Voilà le début de ce que j'ai fais :
void niveauGris()
{

  byte[] tabPixels = new byte [img.width * img.height];
   img = loadImage( "pika.jpeg" );
        longueur=img.height;
        largeur=img.width;
          img.loadPixels();

      int i;
      
      for (i=0; i<tabPixels.length; i++)
      {
      tabPixels[i]= (byte)(tabPixels[i]/3);
}
img.updatePixels();
} 


Quelqu'un saurait m'aider à voir ce qui ne va pas s'il vous plait ? Merci d'avance !

3 réponses

E-Pkton
 
Quelqu'un peut m'aider svp? :(
0
cs_Julien39 Messages postés 6414 Date d'inscription   Statut Modérateur Dernière intervention   2
 
Salut,

La solution en deux lignes :
ColorConvertOp op = new ColorConvertOp(ColorSpace.getInstance(ColorSpace.CS_GRAY), null);
op.filter(image, null);
0
E-Pkton
 
Je n'ai pas l'autorisation d'utiliser les fonctions ou méthodes toute faite, je suis obligé de passer par un code qui changera chaque pixel en niveau de gris pour toute l'image. (avec genre une boucle for et tout).
0