Ludovico Vianello- Video

let capture;
let stepSize = 12;
let isInverted = false;
function setup() {
// Creiamo un canvas quadrato come richiesto per l’immagine in evidenza
createCanvas(800, 800);
capture = createCapture(VIDEO);
capture.size(800, 800);
capture.hide(); // Nascondiamo il feed video originale
noStroke();
}
function draw() {
background(isInverted ? 255 : 0);
// Mappiamo la posizione X del mouse per decidere la densità dei pixel
// Più il mouse è a destra, più i pixel sono grandi/distanti
stepSize = floor(map(mouseX, 0, width, 5, 40));
capture.loadPixels();
// Ciclo attraverso i pixel del video
for (let y = 0; y < capture.height; y += stepSize) {
for (let x = 0; x < capture.width; x += stepSize) {
let index = (x + y * capture.width) * 4;
let r = capture.pixels[index]; let g = capture.pixels[index + 1]; let b = capture.pixels[index + 2]; // Calcoliamo la luminosità per determinare la dimensione del cerchio let bright = (r + g + b) / 3; let size = map(bright, 0, 255, 0, stepSize * 1.5); if (isInverted) { fill(255 - r, 255 - g, 255 - b); } else { fill(r, g, b); } ellipse(x, y, size, size); }
}
}
// Interazione 1: Click del mouse per invertire i colori
function mousePressed() {
isInverted = !isInverted;
}
// Interazione 2: Tasto ‘s’ per salvare il frame per l’assignment
function keyPressed() {
if (key === ‘s’ || key === ‘S’) {
saveCanvas(‘mio_sketch_video’, ‘jpg’);
}
}

Commenti

Lascia un commento