在java中通过编程将渐变图像颜色从一种颜色更改为另一种颜色

在java中通过编程将渐变图像颜色从一种颜色更改为另一种颜色,java,image-processing,colors,gradient,Java,Image Processing,Colors,Gradient,目前,在下面的代码中,我正在检查每个像素是否为白色,如果不是白色,则将其更改为新颜色它不适用于渐变图像。特别是左右角的阴影。我已附加图像蓝色一个是输入,需要转换为另一个红色图像作为输出。任何建议都会有所帮助 for (int xx = 0; xx < width; xx++) { for (int yy = 0; yy < height; yy++) { int clr = image.getRGB(xx, yy); i

目前,在下面的代码中,我正在检查每个像素是否为白色,如果不是白色,则将其更改为新颜色它不适用于渐变图像。特别是左右角的阴影。我已附加图像蓝色一个是输入,需要转换为另一个红色图像作为输出。任何建议都会有所帮助

for (int xx = 0; xx < width; xx++) {
        for (int yy = 0; yy < height; yy++) {
            int clr = image.getRGB(xx, yy);
            int R = (clr & 0x00ff0000) >> 16;
            int G = (clr & 0x0000ff00) >> 8;
            int B = clr & 0x000000ff;
            double Y = 0.2126 * R + 0.7152 * G + 0.0722 * B;

            boolean isWhite = Y > 128 ? true : false;

            if (!isWhite) {
                int[] pixels = raster.getPixel(xx, yy, (int[]) null);
                pixels[0] = Integer.valueOf(hexColor.substring(1, 3), 16);
                pixels[1] = Integer.valueOf(hexColor.substring(3, 5), 16);
                pixels[2] = Integer.valueOf(hexColor.substring(5, 7), 16);
                raster.setPixel(xx, yy, pixels);
            }
        }
    }
for(int-xx=0;xx>16;
INTG=(clr&0x0000ff00)>>8;
int B=clr&0x000000ff;
双Y=0.2126*R+0.7152*G+0.0722*B;
布尔值isWhite=Y>128?真:假;
如果(!isWhite){
int[]像素=光栅.getPixel(xx,yy,(int[])空值;
像素[0]=整数.valueOf(hexColor.substring(1,3),16);
像素[1]=整数.valueOf(hexColor.substring(3,5,16));
像素[2]=整数.valueOf(hexColor.substring(5,7,16));
光栅设置像素(xx,yy,像素);
}
}
}

只需交换红色和蓝色组件的值,只需交换红色和蓝色组件的值