为什么UIColor colorWithHue:Sat:Brightness产生不同色调的颜色作为输出?

Gre*_*reg 4 iphone uicolor ios

为什么+[UIColor colorWithHue:saturation:brightness]产生不同色调的颜色作为输出?

请参阅下面的示例.色调输入为0.223404,但是查看所创建颜色的输出为 0.229560

测试代码:

UIColor *uic = [UIColor colorWithHue:0.223404 saturation:0.944000 brightness:0.990291 alpha:1.0];
NSLog(@"Color Created:  %f, %f, %f", uic.hue, uic.saturation, uic.brightness);
Run Code Online (Sandbox Code Playgroud)

输出:

Color Created:  0.229560, 0.944000, 0.990291
Run Code Online (Sandbox Code Playgroud)

hot*_*aw2 5

这可能是您所请求颜色的最接近的24位RGB值(这是iPhone硬件实际显示的值).

补充:这看起来更接近于来自某些基础RGB值的24位量化HSV转换.您可能希望打印出RGB和HSV,以查看哪些(如果有)量化得更多.

  • 不是这样,因为Apple在完成绘图之前不会转换为24位(因为您可以拥有48位或更高的目标上下文.) (2认同)