为什么我的BufferedImage选择了错误的颜色?

时间:2016-02-28 13:20:19

标签: java bufferedimage

我在另外三个BufferedImage中分离了我的图像的颜色,当我再次将它们组合在一起时,我只得到蓝色。 当我测试红色图像真的变成红色时,我发现它也是蓝色的,它与绿色完全相同。 这是我的代码。

xpath()

那我的错误在哪里?我错过了什么?

1 个答案:

答案 0 :(得分:4)

Color方法getRedgetGreengetBlue将该颜色分量的强度返回为0到255之间的数字。如果将这些数字解释为已打包RGB颜色,它们只填充蓝色成分,这就是为什么你只得到蓝色。您需要按位进行右移以将颜色分量放到正确的位置。

然后,您不需要首先使用这些方法提取颜色,只需使用蒙版:

        red.setRGB(x, y,   image.getRGB(x, y)&0xFF0000);
        green.setRGB(x, y, image.getRGB(x, y)&0x00FF00);
        blue.setRGB(x, y,  image.getRGB(x, y)&0x0000FF);