我试图通过将两张不透明且有色的照片彼此叠加,自然地在一张照片(大象)上混合绿色,在另一张照片(船上)上混合红色。尽管两张照片均以相同的突出度出现,但在运行程序并可以观察到两种颜色时,红色色调(因为这是最后应用的色调)更为占优势,并且无论哪种色调,图像中都没有可辨别的黄色。先申请。如果有人知道如何在处理过程中自然地混合颜色,我很想听听您的建议。我也不想简单地使用黄色作为最后的色调。谢谢!
PImage elephant;
PImage ship;
void setup(){
size(695,473);
elephant = loadImage("elephantRider.png");
ship = loadImage("ship.jpg");
ship.filter(OPAQUE);
elephant.filter(OPAQUE);
}
void draw(){
background(255);
tint(0,255,0, 127);
image(elephant, 0,0);
tint(255,0,0,127);
image(ship, 0,0);
}
答案 0 :(得分:0)
将处理视为绘画。您现在所要做的有点像在屏幕上绘制一种颜色,然后在第一种颜色之上绘制另一种颜色。
相反,您要做的是在之前将两种颜色混合在一起,然后将结果绘制到屏幕上。可以将这两种颜料混合在一起以产生新的颜色。
您可以通过取两种颜色的平均值来完成此操作,如下所示:
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);
}
该示例有些人为,因为平均值很微不足道,但是这种方法适用于任何颜色。
如果您想要更高级的内容,请注意颜色平均是一个非常高级的主题。谷歌搜索“色彩平均”可能是一个不错的开始。