0

我有一个存在多种颜色的图像(我们称之为蒙版)。我还有一个“选定”颜色的列表。我的渲染脚本制作了一个新图像,用作叠加层。如果遮罩和选定列表中都存在某种颜色,则该区域的叠加层应为红色,否则为绿色。

这些是图像: 在此处输入图像描述

在此处输入图像描述

请注意,生成的图像,上面有红色蒙版,中间有一条绿线。我确保在创建第一张图像时关闭抗锯齿功能,因此“蒙版”中没有意外的颜色。但是,由于某种原因,它在我的渲染脚本中不被视为一种或另一种颜色。这是代码:

#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;
}

任何帮助将不胜感激。我还是新手,我永远被困住了!

4

0 回答 0