p0ip0i — 2016-01-06 10:25:50

Bonjour!
Je suis nouveau sur le forum et aussi novice à processing. J'ai un projet pour les cours sur du design génératif, rien de très compliqué je pense mais bon je galère énormement (n'ayant jamais fait de code :( ).
Le principe est de créer un programme qui chargerai 5 ou 6 images et toutes les dix secondes leur emplacement change, ainsi que leur taille et rotation. Et aussi, je ne sais pas si processing place les images dans un ordre précis une fois dans le sketch (comme des calques dans photoshop qui se superposeraient).
J'ai commencé à écrire un peu mais rien de bien concluant pour l'instant...

Je vais continuer à chercher de mon côté mais j'aurais vraiment besoin d'un coup de main! please!
Des bisoux à tous et merci d'avance!

Mushussu — 2016-01-06 14:29:10

Bonjour,
Les images se superposent dans l'ordre d'écriture dans la méthode draw().
Il suffit de bien les ordonnées au départ si tu veux un ordre ou bien tu peux les disposer dans un ordre aléatoire.
Voici un bout de code qui te fera commencer.
Bon courage.

PImage image1, image2;

void setup() {
  size(600, 600);
  image1 = loadImage("image1.jpg");
  image2 = loadImage("image2.jpg");
}

void draw() {
  pushMatrix();
  translate(100, 100);
  scale(0.5);
  image(image1, 0, 0);
  popMatrix();
  translate(200, 200);
  rotate(-PI / 6);
  scale(0.6);
  image(image2, 0, 0);
}
p0ip0i — 2016-01-14 14:44:54

Bonjour!
Désolé j'ai mis beaucoup de temps à répondre mais votre code m'a beaucoup servi comme base, un GRAND merci!
J'ai bien avancé, mais maintenant je me trouve face à un nouveau problème. Je veux que le sketch, une fois lancé, se reset toutes les 1 secondes, et qu'à chaque fois un image soir enregistrée en tif ou autre...

Voila mon code. J'ai un problème, processing me dis qu'il me manque un "}" à la ligne 24 et impossible de trouver ce qui cloche!


ps: encore une fois un grand merci à Mushussu!!

    PImage titre, cadre, date, cercle ;
    float scatterX = random(30, 670);
    float scatterY = random(30, 345);
    int spin = int(random(360));
    int angle = int(random(360));
     
    void setup()
    {
      size(585, 827);
      background(#ffffff);
      imageMode(CENTER);
      titre = loadImage("titre.png");  // load image
      titre.resize(0, 400); //shrink image size
      cadre = loadImage("cadre.png");  // load image
      cadre.resize(0, 400); //shrink image size
      date = loadImage("date.png");  // load image
      date.resize(0, 400); //shrink image size
      cercle = loadImage("cercle.png");  // load image
      cercle.resize(0, 400); //shrink image size
      frameRate(30);
      noLoop();
    
    }
    
    void draw()
    {   
      for (int counter = 0; counter < 1; counter++)
      {
         if (frameCount % MAX_FRAME_NB == 0) // 1000
          {
    saveFrame( "image-###" ); // Add params
    InitSketch();
      {
        pushMatrix();
        translate(scatterX, scatterY);
        rotate(radians(angle)); //rotate image random amount of degrees
        
        image(titre, random(100), random(100)); // put image at random location
        image(cadre, random(100), random(100));
        image(date, random(100), random(100));
        image(cercle, random(100), random(100));
        popMatrix();
     
        counter++; // add to count
        scatterX = random(30, 670); //get new X position
        scatterY = random(30, 345); // get new Y position
      }
Pilou — 2016-01-14 16:44:57

Du point de vue de la syntaxe, dans la partie void draw()
Il y 4 "Accolades ouvrantes" pour une seule "fermante" !
Il en manque donc 3 "fermantes" !
Il va pas aimer le Processing! ;)

p0ip0i — 2016-01-14 23:17:52

merci beaucoup!
Voila le code à peu près fini, un ami m'a donné un coup de main!
Merci beaucoup aux personnes de ce forum qui m'ont aidé!


PImage titre, cadre, date, cercle ;

float scatterX = random(30, 670);
float scatterY = random(30, 345);

int spin = int(random(360));
int angle = int(random(360));

int nombreDeDeclinaisonsMax = 50;
int curseur;
PGraphics[] resultat = new PGraphics[nombreDeDeclinaisonsMax];

void setup() {
  size(585, 827, P2D);
  background(250);
  frameRate(20);
  for(int i = 0; i < resultat.length; i++){
    resultat[i] = createGraphics(585, 827, P2D);
  }
 
  imageMode(CENTER);
  titre = loadImage("titre.png");
  titre.resize(0, 400);
  cadre = loadImage("cadre.png");
  cadre.resize(0, 400);
  date = loadImage("date.png");
  date.resize(0, 400);
  cercle = loadImage("cercle.png");
  cercle.resize(0, 400);
  //noLoop();
}

void draw() {
  resultat[curseur].beginDraw();
  resultat[curseur].pushMatrix();
  resultat[curseur].translate(scatterX, scatterY);
  resultat[curseur].rotate(radians(angle));
  resultat[curseur].image(titre, random(0-500), random(0-100));
  resultat[curseur].image(cadre, random(0-100), random(0-500));
  resultat[curseur].image(date, random(0-500), random(0-100));
  resultat[curseur].image(cercle, random(100), random(0-500));
  resultat[curseur].popMatrix();
  resultat[curseur].endDraw();
 
  image(resultat[curseur], 0, 0);
  resultat[curseur].save("monImg" + curseur + ".png");
  curseur += 1;
 
  if(curseur >= 50){
    println(nombreDeDeclinaisonsMax + " images ont été générées");
    exit();
  }
 
  scatterX = random(30, 670);
  scatterY = random(30, 345);
 
}