我有一个存在多种颜色的图像(让我们称之为蒙版)。我还有一个选择'的列表颜色。我的renderscript创建了一个我用作叠加层的新图像。如果蒙版和选定列表中都有颜色,则该区域中的叠加层应为红色,否则为绿色。
请注意,生成的图像(上面有红色遮罩)之间有一条绿线。我确保在创建第一个图像时关闭消除锯齿功能,以便“面具”中没有意外的颜色。但是,出于某种原因,它在我的渲染中并不被视为一种或另一种颜色。这是代码:
#pragma version(1)
#pragma rs java_package_name(za.co.overtake)
int*reds;
int*greens;
int*blues;
int imgWidth;
uchar4 RS_KERNEL root(uchar4 in, uint32_t x, uint32_t y) {
bool colourme = false;
for(int col = 0; col < imgWidth; col++){
const int red = reds[col];
const int green = greens[col];
const int blue = blues[col];
if (in.r == red && in.g == green && in.b == blue){
colourme = true;
}
}
if (colourme) {
in.r = 117;
in.g = 0;
in.b = 0;
in.a = 100;
} else if (in.a > 200) {
in.r = 10;
in.g = 60;
in.b = 10;
in.a = 100;
} else {
in.r = 0;
in.g = 0;
in.b = 0;
in.a = 0;
}
return in;
}
任何帮助将不胜感激。我还是新手,而且我一直被困住了!