// Variables globales
int mood = 1; // Mode d'affichage : 0 = Sombre, 1 = Clair
import processing.video.*; // Import de la bibliothèque vidéo
Capture video; // Objet pour capturer la vidéo de la webcam
int signal = 0; // Variable signal (non utilisée dans ce code)
void setup() {
size(800, 600); // Définit la taille de la fenêtre à 800x600 pixels
frameRate(50); // Définit le taux de rafraîchissement à 50 images par seconde
video = new Capture(this, width, height); // Initialise la capture vidéo avec les dimensions de la fenêtre
video.start(); // Démarre la capture vidéo
}
void draw() {
video.read(); // Lit la frame actuelle de la vidéo
// Attend quelques frames avant d'appliquer les effets de mélange
if(frameCount > 2) {
// Mode clair : mélange avec l'effet LIGHTEST (garde les pixels les plus clairs)
if(mood == 1) blend(video, 0, 0, width, height, 0, 0, width, height, LIGHTEST);
// Mode sombre : mélange avec l'effet DARKEST (garde les pixels les plus sombres)
if(mood == -1) blend(video, 0, 0, width, height, 0, 0, width, height, DARKEST);
}
else {
// Pour les premières frames, affiche simplement l'image vidéo sans effet
image(video, 0, 0);
}
}
void keyPressed() {
// Touche ESPACE : remet l'arrière-plan selon le mode
if(key == ' ') {
if(mood == 1) background(0); // Arrière-plan noir en mode clair
if(mood == -1) background(255); // Arrière-plan blanc en mode sombre
}
// Touche 'q' : bascule entre les modes clair et sombre
if(key == 'q') {
mood = -mood; // Inverse le signe de mood (1 devient -1, -1 devient 1)
}
// Touche 's' : sauvegarde la frame actuelle
if(key == 's') {
// Crée un nom de fichier avec le numéro de frame et l'heure actuelle
saveFrame("save-" + frameCount + " " + hour() + "" + minute() + "" + second() + ".jpg");
println("saving frame"); // Affiche un message dans la console
}
}