Annonce

>>> Bienvenue sur codelab! >>> Première visite ? >>> quelques mots sur codelab //// une carte des membres//// (apéros) codelab


#1 2016-05-08 18:26:20 Changer les couleurs d'une image en noir-blanc au survol de la souris

Sara
membre
Date d'inscription: 2016-05-07
Messages: 11

Changer les couleurs d'une image en noir-blanc au survol de la souris



Bonjour à tous,
Avec l’aide de l’utilisateur 'Mushussu' à été formuleé ce programme ci :

PImage img ;
PImage img2;

void setup() {
  lireImg();
}
void lireImg(){
  String Img=selectInput();
  img = loadImage(Img);
  size(img.width, img.height);
  image(img, 0, 0);
  img2 = createImage(width, height, RGB);
}

void draw() {
  noirEtBlanc();
}

void noirEtBlanc(){
  img.loadPixels();
  for (int i = 0; i < img.pixels.length; i++) {
    int x = i % width;
    int y = i / width;
    if (sqrt((mouseX - x) * (mouseX - x) + (mouseY - y) * (mouseY - y)) < 50) {
      img2.pixels[i] = color(brightness(img.pixels[i]));
    } 
    else 
    {
      img2.pixels[i] = img.pixels[i];
    }
  }
  img2.updatePixels();
  image(img2, 0, 0);
}

J’ai définie deux fonction à partir de la base déjà développé ('LireImg' et 'noirEtBlac')et je voudrais ne ajouter un troisième mai je n’arrive pas 
La première fonction 'lireImg' inclue la partie de code député à charger l’image, la deuxième gère la partie de code que s’occupe de changer la couleur de pixels.
Mais, est ce qu'il Ya une moyenne pour créer une troisième fonction que peut se charger de contrôler la partie du code relatif au « cercle gris » ?

Ça, c’est mon essaye de créer une fonction qui en fait divise la fonction précèdent (noirEtBlanc):

PImage img ;
PImage img2;

void setup() {
  lireImg();
}
void lireImg(){
  String Img=selectInput();
  img = loadImage(Img);
  size(img.width, img.height);
  image(img, 0, 0);
  img2 = createImage(width, height, RGB);
}

void draw() {
  NoirEtBlanc();
  cercle();
}

void NoirEtBlanc(){
  img.loadPixels();
  for (int i = 0; i < img.pixels.length; i++) {
    int x = i % width;
    int y = i / width;
    }
void cercle(){
    if (sqrt((mouseX - x) * (mouseX - x) + (mouseY - y) * (mouseY - y)) < 50) {
      img2.pixels[i] = color(brightness(img.pixels[i]));
    } 
    else 
    {
      img2.pixels[i] = img.pixels[i];
    }
  }
  img2.updatePixels();
  image(img2, 0, 0);
}

J’ai essayez plusieurs combinassions de code mais sans y arriver…   
Merci encore à tous smile smile smile

Dernière modification par Sara (2016-05-08 18:29:09)

Hors ligne

 

#2 2016-05-08 19:02:31 Re : Changer les couleurs d'une image en noir-blanc au survol de la souris

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Changer les couleurs d'une image en noir-blanc au survol de la souris



Cela ne me paraît guère pertinent de vouloir scinder en plusieurs méthodes. Mais bon !
De plus Processing n'accepte plus que la taille de la fenêtre de rendu soit générée par des variables. Je propose de la définir en fixe été d'ajuster la taille des images.

PImage img ;
PImage img2;

void setup() {
  size(800, 600);
  selectInput("Choisir une image", "lireImg");
  img2 = createImage(width, height, RGB);
}

void lireImg(File selection) {
  img = loadImage(selection.getAbsolutePath());
  img.resize(width, height);
}

void draw() {
  NoirEtBlanc();
}

void NoirEtBlanc() {
  if (img != null) {
    img.loadPixels();
    for (int i = 0; i < img.pixels.length; i++) {
      int x = i % width;
      int y = i / width;
      if (cercle(x, y, 50)) {
        img2.pixels[i] = color(brightness(img.pixels[i]));
      } else {
        img2.pixels[i] = img.pixels[i];
      }
    }
    img2.updatePixels();
    image(img2, 0, 0);
  }
}

boolean cercle(int x, int y, int diametre) {
  return  (sqrt((mouseX - x) * (mouseX - x) + (mouseY - y) * (mouseY - y)) < diametre);
}

Hors ligne

 

#3 2016-05-09 10:57:37 Re : Changer les couleurs d'une image en noir-blanc au survol de la souris

Sara
membre
Date d'inscription: 2016-05-07
Messages: 11

Re: Changer les couleurs d'une image en noir-blanc au survol de la souris



Merci beaucoup Mushussu, j’ai adapté une peut le code parce que ne marche pas comme ça.
Es que c’est correct quand même ?

PImage img2;

void setup() {
  lireImg();
  //size(800, 600);
  //selectInput("Choisir une image", "lireImg");
  
}

void lireImg() {
  String Img=selectInput();
  img = loadImage(Img);
  size(img.width, img.height);
  image(img, 0, 0);
  //img = loadImage(selection.getAbsolutePath());
  img2 = createImage(width, height, RGB);
  img.resize(width, height);
}

void draw() {
  NoirEtBlanc();
}

void NoirEtBlanc() {
  if (img != null) {
    img.loadPixels();
    for (int i = 0; i < img.pixels.length; i++) {
      int x = i % width;
      int y = i / width;
      if (cercle(x, y, 50)) {
        img2.pixels[i] = color(brightness(img.pixels[i]));
      } else {
        img2.pixels[i] = img.pixels[i];
      }
    }
    img2.updatePixels();
    image(img2, 0, 0);
  }
}

boolean cercle(int x, int y, int diametre) {
  return  (sqrt((mouseX - x) * (mouseX - x) + (mouseY - y) * (mouseY - y)) < diametre);
}

J’ai un doute : à quoi ça serve la fonction ‘boolean’ ? Je pas bien compris le concept même dans le Reference
https://processing.org/reference/boolean.html

Hors ligne

 

#4 2016-05-09 15:16:34 Re : Changer les couleurs d'une image en noir-blanc au survol de la souris

Sara
membre
Date d'inscription: 2016-05-07
Messages: 11

Re: Changer les couleurs d'une image en noir-blanc au survol de la souris



J’ai trouvé une nouvelle source pour ce souci de changer des couleurs dans une échelle de gris, voilà :
http://www.tannerhelland.com/3643/grays … rithm-vb6/
Les façons de créer un spot en noir-blanc montré ici sont vraiment très expressives !

Je voudrais transformer la couleur d'origine (comme paramètre) dans une couleur présentant toutes les composantes R, G et B égale. En particulier, la valeur qui doit prendre les composantes (R, G, B) est égale au niveau de couleurs plus large entre les niveaux de rouge, vert et bleu de la couleur d'origine.

Est-ce que c’est possible d’appliquer cet type de modif au programme déjà développé ?

For Each Pixel in Image {
 
   Red = Pixel.Red
   Green = Pixel.Green
   Blue = Pixel.Blue
 
   Gray = Max(Red, Green, Blue)
 
   Pixel.Red = Gray
   Pixel.Green = Gray
   Pixel.Blue = Gray
}

En restant en sujet de pixels, moi par contre, j’ai rajouté un conteur de pixels et de couleur à notre programme (j’espère que ça vous dite) :

void setup() {
  lireImg();
}
void lireImg(){
  String Img=selectInput();
  img = loadImage(Img);
  size(img.width, img.height);
  image(img, 0, 0);
  img2 = createImage(width, height, RGB);
}
void mouseMoved() {
  color c = get(mouseX, mouseY);
  color r = c >> 020 & 0xFF;
  color g = c >> 010 & 0xFF;
  color b = c & 0xFF;
  print( "(" + mouseX + "," + mouseY + ") \t\tColor: #" + hex(c) );
  println( "\tR: " + r + "\t G: " + g + "\t B: " + b );
}
void draw() {
  NoirEtBlanc();
}
void NoirEtBlanc(){
  img.loadPixels();
 
  for (int i = 0; i < img.pixels.length; i++) {
    int x = i % width;
    int y = i / width;
    if (sqrt((mouseX - x) * (mouseX - x) + (mouseY - y) * (mouseY - y)) < 50) {
      img2.pixels[i] = color(brightness(img.pixels[i]));
 
    } 
    else
    {
      img2.pixels[i] = img.pixels[i];
    }
  }
  img2.updatePixels();
  image(img2, 0, 0);
}

Hors ligne

 

#5 2016-05-09 17:05:39 Re : Changer les couleurs d'une image en noir-blanc au survol de la souris

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Changer les couleurs d'une image en noir-blanc au survol de la souris



La méthode setup() sert à initialiser les valeurs. Il est recommandé que size() soit la première instruction du setup.
De plus l'adjonction de la méthode lireImg est sans nécessité.

Voici le code modifié si tu souhaites ajuster les valeurs de gris :

PImage img ;
PImage img2;

void setup() {
  size(800, 600);
  selectInput("Choisir une image", "lireImg");
  img2 = createImage(width, height, RGB);
}

void lireImg(File selection) {
  img = loadImage(selection.getAbsolutePath());
  img.resize(width, height);
}

void draw() {
  NoirEtBlanc();
}

void NoirEtBlanc() {
  if (img != null) {
    img.loadPixels();
    for (int i = 0; i < img.pixels.length; i++) {
      int x = i % width;
      int y = i / width;
      if (cercle(x, y, 50)) {
        int r = img.pixels[i] >> 16 & 0xFF;
        int g = img.pixels[i] >> 8 & 0xFF;
        int b = img.pixels[i] & 0xFF;
        img2.pixels[i] = color(max(r, g, b));
      } else {
        img2.pixels[i] = img.pixels[i];
      }
    }
    img2.updatePixels();
    image(img2, 0, 0);
  }
}

boolean cercle(int x, int y, int diametre) {
  return  (sqrt((mouseX - x) * (mouseX - x) + (mouseY - y) * (mouseY - y)) < diametre);
}

Hors ligne

 

#6 2016-05-09 23:34:01 Re : Changer les couleurs d'une image en noir-blanc au survol de la souris

Sara
membre
Date d'inscription: 2016-05-07
Messages: 11

Re: Changer les couleurs d'une image en noir-blanc au survol de la souris



Le code est génial ! Parfait !big_smilebig_smilebig_smile
Cependant, moi j’ai toujours le même souci avec la première partie que me donne une erreur et me force à changer le code dans cette façon hmm :

PImage img ;
PImage img2;

void setup() {
  lireImg();
}

void lireImg() {
  String Img=selectInput();
  img = loadImage(Img);
  size(img.width, img.height);
  image(img, 0, 0);
  img2 = createImage(width, height, RGB);
}

Ça, c’est l’erreur que me donne Processing :
Pourquoi le programme me rende cet type de erreur ? sad
Un très grand merci smile

http://s32.postimg.org/5jmzw42kl/error.png

Hors ligne

 

#7 2016-05-10 06:29:04 Re : Changer les couleurs d'une image en noir-blanc au survol de la souris

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Changer les couleurs d'une image en noir-blanc au survol de la souris



C'est très étonnant !
Quel version de Processing utilises-tu ? Et sur quelle plateforme, OS ?

Hors ligne

 

#8 2016-05-10 09:30:16 Re : Changer les couleurs d'une image en noir-blanc au survol de la souris

Sara
membre
Date d'inscription: 2016-05-07
Messages: 11

Re: Changer les couleurs d'une image en noir-blanc au survol de la souris



Processing 1.5.1 et j'ai Windows hmm

Hors ligne

 

#9 2016-05-10 10:35:02 Re : Changer les couleurs d'une image en noir-blanc au survol de la souris

Mushussu
membre
Lieu: Orléans
Date d'inscription: 2012-05-24
Messages: 802

Re: Changer les couleurs d'une image en noir-blanc au survol de la souris



Je comprends mieux, ta version de Processing est vieille comme Hérode. N'est-il pas possible d'en prendre une plus récente ? La 3 ?

Hors ligne

 

#10 2016-05-10 20:30:43 Re : Changer les couleurs d'une image en noir-blanc au survol de la souris

Sara
membre
Date d'inscription: 2016-05-07
Messages: 11

Re: Changer les couleurs d'une image en noir-blanc au survol de la souris



Mdr! Oui, en fait ma version c’est un peu obsolète, je ferai l’upgrade bientôt wink

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024