/*
Written in Processing
RGB_video
By Stijn Toussaint http://saintonline.nl stijn@saintonline.nl
Version 1
Licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)
https://creativecommons.org/licenses/by-nc-sa/4.0/
*/
import processing.video.*;
Movie img;
float res = 10;
float alpha = 200;
float raster = 1.5;
float t;
float t_r = random(100);
float t_g = random(100);
float t_b = random(100);
int time = millis();
float speed = 0.02;
float d = 15;
void setup() {
fullScreen();
noCursor();
blendMode(ADD);
background(0);
img = new Movie(this, "cheeta.mp4");
img.loop();
}
void draw() {
img.jump(t);
img.read();
background(0);
noStroke();
pushMatrix();
translate(map(noise(t_r), 0, 1, -d, d), map(noise(t_r+100), 0, 1, -d, d));
for (int x = 0; x < img.width; x += res*raster) {
for (int y = 0; y < img.height; y += res*raster) {
int loc = x+y*img.width;
float r = red(img.pixels[loc]);
pushMatrix();
fill(r, 0, 0, 150);
ellipse(x, y, res, res);
popMatrix();
}
}
popMatrix();
pushMatrix();
translate(map(noise(t_g), 0, 1, -d, d), map(noise(t_g+100), 0, 1, -d, d));
for (int x = 0; x < img.width; x += res*raster) {
for (int y = 0; y < img.height; y += res*raster) {
int loc = x+y*img.width;
float g = green(img.pixels[loc]);
pushMatrix();
fill(0, g, 0, 150);
ellipse(x, y, res, res);
popMatrix();
}
}
popMatrix();
pushMatrix();
translate(map(noise(t_b), 0, 1, -d, d), map(noise(t_b+100), 0, 1, -d, d));
for (int x = 0; x < img.width; x += res*raster) {
for (int y = 0; y < img.height; y += res*raster) {
int loc = x+y*img.width;
float b = blue(img.pixels[loc]);
pushMatrix();
fill(0, 0, b, 150);
ellipse(x, y, res, res);
popMatrix();
}
}
popMatrix();
t += 0.1;
t_r += speed;
t_g += speed;
t_b += speed;
saveFrame("output/RGB_mix_####.png");
}