Annonce

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


#1 2016-04-17 16:19:44 Effacer, détériorer progressivement une photo

Vee
nouveau membre
Lieu: Rennes
Date d'inscription: 2016-04-17
Messages: 3
Site web

Effacer, détériorer progressivement une photo



Bonjour à tous,

J'en appelle à vos savoirs car je bloque sur un problème de code (je suis débutante ++ et malgré mes nombreuses recherches, je ne trouve rien). Je cherche à créer un programme qui permettrait à une image de s'effacer progressivement (par fragment) pour en laisser apparaître une autre et ainsi de suite. Mon problème est que la seule méthode que j'ai pu trouver pour le moment est de rendre transparente l'image (en entière), hors je voudrais qu'elle disparaisse par fragments progressifs et non par transparence.

Pour l'instant, la seule solution que j'ai trouvé est d'employé l'outil pointillize pour faire apparaître une image par dessus ma première image de fond. Dans l'idée ca fonctionne pas trop mal, mais j'aimerais que l'une se dégrade pendant que l'autre apparaît... Est-ce que vous auriez une petite solution pour moi ? Je vous copie le bout de code que j'emploie pour l'instant:

int pointillize = 5;


void setup() {
  size(500,330);
  img2 = loadImage("velo1.jpg");
  image(img2,0,0,500,400);
  img = loadImage("velo2.jpg");
  smooth();
}

void draw() {
  // Pick a random point
  int x = int(random(img.width));
  int y = int(random(img.height));
  int loc = x + y*img.width;
 
  // Look up the RGB color in the source image
  loadPixels();
  float r = red(img.pixels[loc]);
  float g = green(img.pixels[loc]);
  float b = blue(img.pixels[loc]);
  noStroke();
 
  // Draw an ellipse at that location with that color

  fill(r,g,b,100);
  ellipse(x,y,pointillize,pointillize);
}

Je vous remercie pour votre aide !

Hors ligne

 

#2 2016-04-17 19:05:01 Re : Effacer, détériorer progressivement une photo

thoskan
membre
Date d'inscription: 2010-09-18
Messages: 87

Re: Effacer, détériorer progressivement une photo



Je me suis chauffé puisque moi aussi je commence processing depuis pas longtemps.
En fait, je parcours aléatoirement une image pixel par pixel, et je dessine des carre de 1 pixel (correspondant aux pixels) par dessus la première qui est déjà affichée.

il doit y avoir moyen de travailler sur les pixels de l'image directement au lieu d'afficher des carre, mais j'ai pas trop cherché à vrai dire tongue

Dis moi si ça te vas comme ça ?

j'ai aussi mis une variable pointsize pour faire du pointillisme wink

++++++++++++++++++++++++++++++++++++++++++++++

citation :

PImage img1;
PImage img2;

boolean[] pixelTab;
int pixelIndex = 0;
int x = 0;
int y = 0;
int k = 0;
boolean process = true;

// A changer pour faire du pointillisme
int pointsize = 1;

void setup() {
  size(600,400);
  frameRate(60);
 
  // charge les image en memoire
  img1 = loadImage("velo2.jpg");
  img2 = loadImage("velo1.jpg");
  img2.loadPixels();
 
  // affiche la premiere image
  image(img1,0,0);
 
  // pas de bord pour les rectangles
  noStroke();
     
  // initialise un tableau de pixel
  pixelTab = new boolean[img2.width * img2.height];
  for (int i = 0; i < pixelTab.length; i++)
  {
    pixelTab[i] = false;
  }
}

void draw()
{
  if(process)
  {
    for(int i = 0; i < 500; i++)
    {
      // evite de reparcourir les pixels déjà affichés
      do
      {
        x = int(random(img2.width));
        y = int(random(img2.height));
        pixelIndex = x + y * img2.width;
      }
      while(pixelTab[pixelIndex]);
           
      // puis un point de couleur
      color c = img2.get(x, y);
      fill(c);
      rect(x,y,pointsize,pointsize);
      pixelTab[pixelIndex] = true;
     
      k++;   
      if(k == pixelTab.length)
      {
        println("termine : " + k);
        process = false;
        break;
      }
    }
   }
}

Dernière modification par thoskan (2016-04-17 19:30:13)

Hors ligne

 

#3 2016-04-17 19:37:17 Re : Effacer, détériorer progressivement une photo

Vee
nouveau membre
Lieu: Rennes
Date d'inscription: 2016-04-17
Messages: 3
Site web

Re: Effacer, détériorer progressivement une photo



Super merci beaucoup ! Ca se rapproche beaucoup plus du résultat que je cherche à obtenir.
Je vais essayer de le poursuivre pour faire une suite d'images. Encore merci !

Hors ligne

 

#4 2016-04-17 19:43:51 Re : Effacer, détériorer progressivement une photo

thoskan
membre
Date d'inscription: 2010-09-18
Messages: 87

Re: Effacer, détériorer progressivement une photo



je sais pas si t'as vu , j'ai mis à jour le code.
j'ai viré les fonctions point() et je les ai remplacé par rect(), ça marche mieux.
j'ai la bizarre impression que point() ne recouvrait pas totalement le pixel de l'image. étrange  .. m'enfin !

heureux que ça te plaise.

Dernière modification par thoskan (2016-04-17 19:44:13)

Hors ligne

 

#5 2016-04-18 11:31:31 Re : Effacer, détériorer progressivement une photo

thoskan
membre
Date d'inscription: 2010-09-18
Messages: 87

Re: Effacer, détériorer progressivement une photo



J'ai mis une version avec processingjs en ligne, si jamais t'as besoin de montrer ton travail via internet.

C'est dispo ici :
http://kwakers.free.fr/processingjs/randompixels/

Dernière modification par thoskan (2016-04-18 11:32:16)

Hors ligne

 

#6 2016-04-21 20:45:57 Re : Effacer, détériorer progressivement une photo

Vee
nouveau membre
Lieu: Rennes
Date d'inscription: 2016-04-17
Messages: 3
Site web

Re: Effacer, détériorer progressivement une photo



Parfait, merci beaucoup (:

Hors ligne

 

fil rss de cette discussion : rss

Pied de page des forums

Powered by FluxBB

codelab, graphisme & code : emoc / 2008-2024