В представленном ниже коде hsl компонент оттенка цвета имеет значение, отличное от ожидаемого.
Для: r: 255 г: 168 б: 177 он дает hsl оттенок 353, но на других веб-инструментах он дает 354
QColor rgb(c);
QColor hsl = rgb.toHsl();
QColor hsv = rgb.toHsv();
// RGB
int r = rgb.red();
int g = rgb.green();
int b = rgb.blue();
// HSB
int hslh = qMax(hsl.hslHue(), 0);
int hsls = hsl.hslSaturation();
int hsll = hsl.lightness();
Это известная проблема?
Кажется, проблема заключается просто в том, как Qt округляет значения компонентов цвета при запросе целочисленного вывода. Для иллюстрации на вашем примере:
QColor col(255,168,177);
std::cout << "hue_float " << col.hslHueF()*360.0f << std::endl;
std::cout << "hue_int " << col.hslHue() << std::endl;
Выходы:
hue_float 353.79
hue_int 353