1
我试图执行RGB和HSV之间的颜色转换并返回RGB。这是一个我正在创建的HSV颜色选择器程序。我检索HSV组件。我想严格按照我的颜色设置新的饱和度,因此请将饱和度值设置为等于所请求的值。然后我将它转换回RGB。然而,色相的价值已经改变,我没有要求。此外,如果我不断移动我的饱和度滑块,色调最终会将颜色与青色,黄色或品红色相匹配,色调为60,180和300.有没有办法在设置饱和度时不改变色调?Android颜色转换问题
注:getHue,getSaturation,和getValue被检索的ColorCode的HSV分量
public void setSaturation(float s)
{
float hsv[];
hsv = new float[3];
Log.i("Before change",String.valueOf("H: "+getHue()+" S: "+getSaturation()+" V: "+getValue()));
Color.RGBToHSV(getRed(), getGreen(), getBlue(), hsv);
hsv[1] = s;
colorCode = Color.HSVToColor(hsv);
Log.i("After change",String.valueOf("H: "+getHue()+" S: "+getSaturation()+" V: "+getValue()));
}
变化之前(21558):H:28.771929 S:0.67058825五:1.0
变化后(21558): H:28.928572 S:0.65882355 V:1.0