UIColor中的奇怪参数colorWithRed:green:blue:alpha:

时间:2011-04-12 17:28:25

标签: cocoa-touch rgb uicolor

检查此方法时,我期待红色,绿色和蓝色在0-255范围内。相反,它在0-1。

我是唯一一个认为这很奇怪的人吗?

有没有理由不使用更常见的0-255 RGB值,甚至是十六进制数(如html)?

2 个答案:

答案 0 :(得分:3)

在我看来,这并不奇怪。 0-255和0.0-1.0级别都广泛用于不同的平台。您可以使用以下内容进行转换:

#define FLOAT_COLOR_VALUE(n) (n)/255.0

答案 1 :(得分:1)

有时RGB值表示为浮点值而不是0到255的原因是因为0到255假设您使用8位来表示每个颜色分量,因此必须对帧缓冲区中的每种颜色使用24位。如果您使用的显示器总共只支持256种颜色或超过1600万种等,则情况可能并非如此。 从理论上讲,它可以是无限多种红色,绿色或蓝色。用于表示它们的位数取决于您需要表示颜色的准确程度以及您在图形卡上表示图像的内存量等。 对于许多情况,0到255很好。但是还有另一个世界并不是很好,对于那些设备/准确的渲染要求,浮点数提供了一个非常需要的选择。