Думайте об обработке как о живописи. То, что вы делаете сейчас, немного похоже на рисование одного цвета на экране, а затем рисование другого цвета поверх первого цвета.
Вместо этого вам нужно смешать два цвета вместе до того, как вы отобразите результат на экране. Думайте об этом как о смешивании двух красок, чтобы получить новый цвет.
Вы можете сделать это, взяв среднее из двух цветов, примерно так:
PImage img;
void setup() {
size(695, 473);
img = loadImage("image.jpg");
}
void draw() {
background(255);
//green
tint(0, 255, 0, 127);
image(img, width/2, height/2, 50, 50);
float blendedRed = (0 + 255) / 2;
float blendedGreen = (255 + 0) / 2;
float blendedBlue = (0 + 0) / 2;
// blended
tint(blendedRed, blendedGreen, blendedBlue, 127);
image(img, mouseX, mouseY, 50, 50);
}
Этот пример немного надуманный, потому что средние значения довольно тривиальны, но этот подход должен работать для любого цвета.
Если вы хотите что-то более продвинутое, учтите, что Усреднение цвета - довольно сложная тема. Погуглите «усреднение цвета», вероятно, хорошее начало.