Q HSL 色调精度

QColor hsl hue precision

本文关键字:精度 色调 HSL      更新时间:2023-10-16

在下面提供的代码中,颜色的 hsl 色调分量具有与预期不同的值。

对于: r:255 g:168 b:177 它给出的 HSL 色调为 353,但在其他 Web 工具上,它产生 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