QColor hsl色调精度

时间:2014-11-24 18:39:15

标签: c++ qt qtgui hsl

在下面的代码中,颜色的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();

这是一个已知问题吗?

1 个答案:

答案 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