在下面的代码中,颜色的hsl hue组件具有与预期不同的值。
对于:r:255 g:168 b: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();
这是一个已知问题吗?
答案 0 :(得分:0)
问题似乎是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