在Java

时间:2019-03-20 14:53:37

标签: 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);
            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);
            }
        }
    }

Input Blue Image Output Red Image

0 个答案:

没有答案