Voici le code, court et commenté :
import processing.video.*;
Capture webcam;
// nombre de lignes copiées en hauteur
int hauteur=2;
void setup()
{
size(640, 480);
frameRate(30);
webcam = new Capture(this, width, height, 30);
}
void draw() {
if(webcam.available()) {
webcam.read();
// choisir le point à copier
int wichline=int(random(height));
// copier depuis l'image vers l'ecran
copy(webcam, 0, wichline, width, hauteur, 0, wichline, width, hauteur);
}
}
// pour avoir la capture totale affichée, appuyer sur une touche
void keyPressed() {
webcam.read();
image(webcam,0,0);
}
On utilise la fonction "copy" pour choisir la portion à copier depuis l’image capturée par la webcam sur l’écran.
Dans ce script, la ligne verticale que l’on copie est choisie au hasard, mais on peut utiliser un scannage vertical régulier, et l’on peut encore choisir une portion carré plutôt qu’un ligne.
Bref ce code peut servir de base à un développement un peu plus fin de l’animation.