Hi, I am pretty new to Processing, have been working on it for a few months. I have searched through the internet but my problem doesn't make sense.
I have two videos playing and want to have a fade transition between them. I access directly each pixel but no matter what the alpha value is there is no change. For now I just have my code prepared to fade from a specific video to the other. If I can make it fade from this video to the other I will be able to adapt and fade for the video that currently will be playing.
Here is my code:
import processing.video.*;
Movie movie1, movie2;
float alpha;
void setup() {
alpha = 255.0;
size(320, 240, P2D);
movie1 = new Movie(this, "Video1.mov");
movie2 = new Movie(this, "Video2.mov");
movie1.loop();
movie2.loop();
}
void movieEvent(Movie mov) {
mov.read();
}
void draw() {
if (fade) { // Fade Transition
image(movie1, 0, 0, width, height);
fade(movie1, movie2, movie1Playing);
} else {
image(movie2, 0, 0, width, height);
}
}
void fade(Movie mov1, Movie mov2) {
float r = 0.0;
float g = 0.0;
float b = 0.0;
int x = 0;
int y = 0;
int pos = 0;
loadPixels();
mov1.loadPixels();
mov2.loadPixels();
if(alpha > 0) {
alpha--;
}
for (x = 0; x < mov2.width; x++) {
for (y = 0; y < mov2.height; y++ ) {
pos = x + y*mov2.width;
r = red(mov2.pixels[pos]);
g = green(mov2.pixels[pos]);
b = blue(mov2.pixels[pos]);
color newColor = color(r,g,b, alpha);
pixels[pos] = newColor;
}
}
updatePixels();
}
void keyPressed() {
switch (key) {
case 'f':
fade = !fade;
break;
}
}
For this work I can't use libraries or the tint function, I have to directly access the pixels and modify them.
I don't know why it's not working. I would appreciate any help you can give me.