2014-02-19 85 views
1

爲什麼在HSB顏色模型中改變亮度變化顏色?這是我的代碼:Java 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

您在撥打電話Color.RGBtoHSB時犯了一個錯誤。

您寫道:

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

你可能想:

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

感謝您指出了這一點!我發現'亮度'與'亮度'不一樣。 – Tanay