【发布时间】:2015-03-19 10:40:21
【问题描述】:
有人可以解释为什么从 hsv 转换回 rgb 时从 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)
【问题讨论】: