如何获得QColor :: greenF颜色值恰好在0和1之间,而不是四舍五入?

时间:2018-07-01 19:50:35

标签: c++ qt rgb qcolor

我有一个QColor值,我需要将其分解为0到1之间的RGB分量,小数点后只有一个值。
例如:Orange color

QColor color = QColor(255,128,0)
qreal green = color.greenF();
qDebug() << green; //0.501960784

绿色部分必须为0.6。也就是说,它是rgb value is (255,128,0) or (1,0.6,0).

如何获取0.6而不是0.501960784

1 个答案:

答案 0 :(得分:2)

  

但是橙色是255,128,0

没有“ the”橙色之类的东西。每个人都使用相同的单词打电话给其他人。橙色不是颜色,而是一系列色调。为这些色调指定饱和度和亮度后,它们就会变成颜色。可以使用每个combitnet的8位R,G,B三元组来表示很多颜色,它们的色调均为橙色,因此可以称为 an 橙色。没有 the 橙色,

  

绿色分量必须为0.6。也就是说,它的rgb值为(255,128,0)或(1,0.6,0)。

不是。 QColor告诉您,基本数学告诉您。 显然的颜色是1/0.6/01*255, 6/10*255, 0*255255, 1530/10, 0255, 153, 0 准确。永远不会255,128,0,我也不知道是谁告诉你的,但是他们错了。

这真的很简单:忘记一切。只需使用QColor::redFgreenFblueF。他们以应有的方式工作。

哦,您甚至没有提到房间里的大象是色彩空间。 RGB三元组没有物理意义-完全是抽象的-除非将其映射到物理色彩空间。而且,您最好使用校准的输出设备来将颜色选择与用户联系起来,否则周围将无尽的愚蠢。