Bonjour, donc voici mon problème :
- J'ai branché un bouton poussoir au clic d'une souris relié à l'ordinateur.
- J'ai branché une webcam à mon ordinateur.
- J'ai branché un second écran à l'ordinateur
Mon but est de réaliser un photomaton, en gros une personne appuiera sur le bouton poussoir et ça prendra une photo enregistré dans un dossier jusque la ça va.
Voici le code :
import processing.video.*; import java.awt.Frame; long photo; Capture cam; void setup() { photo = 0; fullScreen(); ellipse(width/2, height/2, height, height); String[] cameras = Capture.list(); if (cameras == null) { println("Failed to retrieve the list of available cameras, will try the default..."); cam = new Capture(this, 1280, 720); } if (cameras.length == 0) { println("There are no cameras available for capture."); exit(); } else { println("Available cameras:"); printArray(cameras); } } void draw() { if (cam.available() == true) { cam.read(); } image(cam, 0, 0, width, height); } void mouseClicked(){ photo ++; save("VTT" + photo + ".png"); }
Voici les problèmes rencontrés :
- J'aimerais que lorsqu'il y a un clic sur la souris, la photo soit prise 3 secondes après.
- J'aimerais gérer un affichage des photos qui ont été prises et enregistrés dans le dossier, une sorte de diaporama sur le second écran.
J'espère que c'est clair
Merci d'avance à vous !!
Hors ligne
Personne n'a d'idées comment retarder la prise d'une photo de 3 secondes ?
Hors ligne
Bonjour,
Tu es bien impatient. C'est samedi et les neurones des contributeurs se reposent après une longue semaine. Néanmoins, voici ce que je te propose :
import processing.video.*; import java.awt.Frame; long photo; Capture cam; int compteur; void setup() { photo = 0; size(640, 480); ellipse(width/2, height/2, height, height); String[] cameras = Capture.list(); cam = new Capture(this, 640, 480); if (cameras == null) { println("Failed to retrieve the list of available cameras, will try the default..."); } cam.start(); compteur = 0; textSize(400); } void draw() { if (cam.available() == true) { cam.read(); image(cam, 0, 0, width, height); if (compteur != 0) { if (millis() - compteur >0) { photo ++; save("VTT" + photo + ".jpg"); compteur = 0; } else { fill(255, 0, 0, 40); text((compteur - millis()) / 1000 + 1, 200, height - 100); } } } } void mouseClicked() { compteur = millis() + 3000; }
Hors ligne
Super merci beaucoup pour ton aide ! Ça fonctionne parfaitement !
Maintenant auriez-vous une idee pour créer une deuxieme fenêtre processing en plein écran sur le second écran déporté qui défilerais les photos prises en direct ? S'il vous plaît
Hors ligne
Regarde par ic :
http://wiki.labomedia.org/index.php/Pro … de_fenêtre
ou utilises la librairie G4P :
http://www.lagers.org.uk/g4p/index.html
et un petit tutoriel :
http://www.lagers.org.uk/g4p/ex-windows/index.html
Bon courage et n'hésite pas a posté ton code fini pour qu'il puisse servir à d'autres personnes.
Hors ligne
J'ai réussi à créer une seconde fenêtre, le problème c'est que je ne peux pas mettre en plein écran sur l'écran déporté
Hors ligne
Quelle méthode as-tu utilisé ?
Peux-tu poster ton code pour que nous puissions t'aider ?
Hors ligne
Voici mon code :
import processing.video.*; import java.awt.Frame; long photo; Capture cam; int compteur; void setup() { photo = 0; PApplet.runSketch(platformNames, new SecondApplet()) fullScreen(); ellipse(width/2, height/2, height, height); String[] cameras = Capture.list(); cam = new Capture(this, 640, 480); if (cameras == null) { println("Failed to retrieve the list of available cameras, will try the default..."); } cam.start(); compteur = 0; textSize(400); } public class SecondApplet extends PApplet { public void settings() { fullScreen (); ellipse(width/2, height/2, height, height); } public void setup() { surface.setTitle("Affichage"); } public void draw() { background(255); fill(0); ellipse(100, 50, 10, 10); } } void draw() { if (cam.available() == true) { cam.read(); image(cam, 0, 0, width, height); if (compteur != 0) { if (millis() - compteur >0) { photo ++; save("VTT" + photo + ".jpg"); compteur = 0; } else { fill(255, 0, 0, 40); text((compteur - millis()) / 1000 + 1, 200, height - 100); } } } } void mouseClicked() { compteur = millis() + 3000; }
Hors ligne
S'il vous plaît, je n'arrive pas à faire 2 fullSceeen (), 1 sur chaque écran
Hors ligne
https://processing.org/reference/fullScreen_.html
Sans avoir vérifié si ça marche, tu peux mettre un paramètre dans la fonction fullScreen(); (voir le paramètre display).
Hors ligne
J'ai teste et ça ne fonctionne pas...
Hors ligne
Est-ce que cela fonctionne :
void settings() { fullScreen(2); } void setup() { PApplet.runSketch(platformNames, new SecondApplet()); } void draw() { background(0); fill(255, 0, 0); ellipse(width / 2, height / 2, 100, 100); } public class SecondApplet extends PApplet { public void settings() { fullScreen(1); } public void setup() { surface.setTitle("Titre de ma seconde fenetre"); } public void draw() { background(255); fill(0, 255, 0); ellipse(width / 2, height / 2, 100, 100); } }
Hors ligne
Ah si exact la ça fonctionne, alors pourquoi dans mon programme, il y a quelque chose qui empêche de fonctionner correctement...?
Hors ligne
J'ai réussi à mettre les deux en fond d'écrans, il suffisait juste de modifier l'ordre des instructions :
import processing.video.*; import java.awt.Frame; long photo; Capture cam; int compteur; void settings() { fullScreen(1); } void setup() { photo = 0; PApplet.runSketch(platformNames, new SecondApplet()); String[] cameras = Capture.list(); cam = new Capture(this, 640, 480); if (cameras == null) { println("Failed to retrieve the list of available cameras, will try the default..."); } cam.start(); compteur = 0; textSize(1800); } void draw() { if (cam.available() == true) { cam.read(); PImage logo; logo = loadImage("logo.png"); image(cam, 0, 0, width, height); image (logo,1145,540); if (compteur != 0) { if (millis() - compteur >0) { photo ++; save("VTT" + photo + ".jpg"); compteur = 0; } else { fill(255, 0, 0, 150); PFont maTypo = loadFont("AcmeFont-255.vlw"); // choix de la typo textFont(maTypo, 255); text((compteur - millis()) / 1000 + 1, 30, height - 550); } } } } public class SecondApplet extends PApplet { public void settings() { fullScreen(2); } public void setup() { surface.setTitle("Affichage"); } public void draw() { background(255); fill(0); ellipse(500, 500, 500, 500); } } void mouseClicked() { compteur = millis() + 3000; } void loop () { size(400,300); PImage logo; logo = loadImage("logo.png"); image (logo,20,20); }
Avez-vous une idée pour créer un diaporama avec des transitions assez funs de mes photos prises avec une variable?
Hors ligne
Peut-on avoir ta définition de :
transitions assez funs
Car je suppose que nous n'avons pas les mêmes valeurs.
Hors ligne