我正在尝试创建一个壁纸,并在"android.graphics.color"类中使用HSV转换.当我意识到将具有指定色调(0..360)的创建的HSV颜色转换为rgb颜色(整数)并且将后转换为HSV颜色不会导致相同的色调时,我感到非常惊讶.这是我的代码:
int c = Color.HSVToColor(new float[] { 100f, 1, 1 }); float[] f = new float[3]; Color.colorToHSV(c, f); alert(f[0]);
我从100度的色调开始,结果是99.76471.我想知道为什么(在我看来)存在相对较大的不准确性.
但更大的问题是,当您再次将该值放入代码中时,新结果会再次降低.
int c = Color.HSVToColor(new float[] { 99.76471f, 1, 1 }); float[] f = new float[3]; Color.colorToHSV(c, f); alert(f[0]);
如果我从99.76471开始,我得到99.52941.这对我来说是个问题.我在java中使用"java.awt.Color"类做了类似的事情,我没有遇到这些问题.不幸的是,我不能在android中使用这个类.