Я пытаюсь выполнить преобразование цвета между RGB и HSV и обратно в RGB. Это для программы выбора цвета HSV, которую я создаю. Я извлекаю компоненты HSV. Я хочу установить новое насыщение строго для моего цвета, поэтому установите значение насыщенности равным требуемому значению. Затем я конвертирую его в RGB. Однако значение Hue изменилось, и я не просил его. Кроме того, если я постоянно перемещаю ползунок Saturation, оттенок в конечном итоге выравнивает цвет с Cyan, Yellow или Magenta, которые имеют оттенки 60, 180 и 300. Есть ли способ, чтобы оттенок не изменялся при настройке насыщения ?Проблема преобразования цвета Android
Примечание: getHue, getSaturation и ПолучитьЗначение извлекаются HSV составляющую ColorCode в
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 V: 1,0
После изменения (21558): H: 28.928572 S: 0.65882355 V: 1.0