有人可以解釋爲什麼從hsv轉換回rgb時,從rgb轉換爲hsv不會產生相同結果?Android從rgb轉換爲hsv,反之亦然
int color = Color.rgb(206, 43, 55);
int red = Color.red(color);
int green = Color.green(color);
int blue = Color.blue(color);
System.out.println(red + ", " + green + ", " + blue);
//prints: 206, 43, 55 (as expected)
float[] hsv = new float[3];
Color.RGBToHSV(red, green, blue, hsv);
float hue = hsv[0];
float sat = hsv[1];
float val = hsv[2];
int outputColor = Color.HSVToColor(hsv);
red = Color.red(outputColor);
green = Color.green(outputColor);
blue = Color.blue(outputColor);
System.out.println(red + ", " + green + ", " + blue);
//prints: 206, 42, 54 (green and blue are changed)
我也想過,之所以是這樣的。你知道任何其他方法確切轉換嗎? – 2015-01-21 12:34:07