mirror of
https://github.com/processing/processing4.git
synced 2026-01-31 20:31:10 +01:00
84 lines
1.7 KiB
Plaintext
84 lines
1.7 KiB
Plaintext
/**
|
|
* Blending
|
|
* by Andres Colubri.
|
|
*
|
|
* Images can be blended using one of the 10 blending modes
|
|
* (currently available only in P2D and P3).
|
|
* Click to go to cycle through the modes.
|
|
*/
|
|
|
|
// NOTE: THIS EXAMPLE IS IN PROGRESS -- REAS
|
|
|
|
PImage img1, img2;
|
|
int selMode = REPLACE;
|
|
String name = "REPLACE";
|
|
int picAlpha = 255;
|
|
|
|
void setup() {
|
|
size(640, 360, P3D);
|
|
img1 = loadImage("layer1.jpg");
|
|
img2 = loadImage("layer2.jpg");
|
|
noStroke();
|
|
}
|
|
|
|
void draw() {
|
|
|
|
picAlpha = int(map(mouseX, 0, width, 0, 255));
|
|
|
|
background(0);
|
|
|
|
tint(255, 255);
|
|
image(img1, 0, 0);
|
|
|
|
blendMode(selMode);
|
|
tint(255, picAlpha);
|
|
image(img2, 0, 0);
|
|
|
|
blendMode(REPLACE);
|
|
fill(255);
|
|
rect(0, 0, 94, 22);
|
|
fill(0);
|
|
text(name, 10, 15);
|
|
}
|
|
|
|
void mousePressed() {
|
|
|
|
if (selMode == REPLACE) {
|
|
selMode = BLEND;
|
|
name = "BLEND";
|
|
} else if (selMode == BLEND) {
|
|
selMode = ADD;
|
|
name = "ADD";
|
|
} else if (selMode == ADD) {
|
|
selMode = SUBTRACT;
|
|
name = "SUBTRACT";
|
|
} else if (selMode == SUBTRACT) {
|
|
selMode = LIGHTEST;
|
|
name = "LIGHTEST";
|
|
} else if (selMode == LIGHTEST) {
|
|
selMode = DARKEST;
|
|
name = "DARKEST";
|
|
} else if (selMode == DARKEST) {
|
|
selMode = DIFFERENCE;
|
|
name = "DIFFERENCE";
|
|
} else if (selMode == DIFFERENCE) {
|
|
selMode = EXCLUSION;
|
|
name = "EXCLUSION";
|
|
} else if (selMode == EXCLUSION) {
|
|
selMode = MULTIPLY;
|
|
name = "MULTIPLY";
|
|
} else if (selMode == MULTIPLY) {
|
|
selMode = SCREEN;
|
|
name = "SCREEN";
|
|
} else if (selMode == SCREEN) {
|
|
selMode = REPLACE;
|
|
name = "REPLACE";
|
|
}
|
|
}
|
|
|
|
void mouseDragged() {
|
|
if (height - 50 < mouseY) {
|
|
picAlpha = int(map(mouseX, 0, width, 0, 255));
|
|
}
|
|
}
|