- staross, je serais très intéressé par ton script processing, s'il te plait,
Voilà, Il te faut un dossier à coté du script processing avec les images qui viennent d'une vidéo ou d'un gif (genre 1.png, 2.png, etc...), y'a pleins de petits programmes pour faire ça.
Ensuite faut entrer le nom du dossier (par exemple ici im8) : String dir = "im8";
Il faut aussi changer l'extension des images (ici c'est .bmp) :
return name.toLowerCase().endsWith(".bmp");
C'est tout.
String dir = "im8";
PImage[] images;
////setup
void setup() {
java.io.File folder = new java.io.File(sketchPath + "\\" + dir);
java.io.FilenameFilter jpgFilter = new java.io.FilenameFilter() {
boolean accept(File dir, String name) {
return name.toLowerCase().endsWith(".bmp");
}
};
String[] filenames = folder.list(jpgFilter);
images = new PImage[filenames.length];
for (int i = 0; i < filenames.length; i++) {
images = loadImage(sketchPath + "\\" + dir + "\\" + filenames);
}
size(images[0].width, images[0].height,P2D);
noLoop();
}
////draw
void draw() {
loadPixels();
int ind,y;
y =0;
for (int x = 0; x < images[0].width; x++ ) {
// if(random(0,1) < 0.5)
// {
// ind = images.length-1 - ceil( float(images.length-1) * float(x) / float( images[0].width));
// } else {
// ind = ceil( float(images.length-1) * float(x) / float( images[0].width));
// }
// if(random(0,1) < 0.5)
// {
// ind = images.length-1 - ceil( float(images.length-1) * float(y) / float( images[0].height));
// } else {
// ind = ceil( float(images.length-1) * float(y) / float( images[0].height));
// }
for ( y = 0; y < images[0].height; y++ ) {
ind = int ( 1*(images.length-1) * float(y) / images[0].height );
//ind = int ( 2.56*(images.length-1) * float(y) / images[0].height );
//ind = ind + round( random(-10,10) );
ind = ind%(images.length-1);
PImage img = images[ind];
int loc = x + y*img.width;
float r = red (img.pixels[loc]);
float g = green (img.pixels[loc]);
float b = blue (img.pixels[loc]);
color c = color(r,g,b);
pixels[loc] = c;
}
}
updatePixels();
save("out.png");
}