Java HSB颜色模型:颜色随亮度变化?

时间:2014-02-19 02:18:51

标签: java colors color-management

为什么改变亮度会改变 HSB 颜色模型中的颜色?这是我的代码:

for (int y=0; y<height; y++)
    for (int x=0; x<width; x++) {
        Color pix = image.getPixel(x, y);
            float[] hsb = new float[3];
            Color.RGBtoHSB(pix.getRGB(),pix.getGreen(),pix.getBlue(),hsb);
            Color newColor = new Color(Color.HSBtoRGB(hsb[0], hsb[1],(float)0.5));
                image.setPixel(x, y, newColor);
        }

代码为图像中每个像素的亮度指定值0.5。

1 个答案:

答案 0 :(得分:1)

您在致电Color.RGBtoHSB时犯了一个错误。

您写道:

Color.RGBtoHSB(pix.getRGB(),pix.getGreen(),pix.getBlue(),hsb);

你可能想要:

Color.RGBtoHSB(pix.getRed(),pix.getGreen(),pix.getBlue(),hsb);