【发布时间】:2011-04-12 17:28:25
【问题描述】:
检查此方法时,我期望红色、绿色和蓝色在 0-255 范围内。相反,它是 0-1。
只有我觉得这很奇怪吗?
是否有任何理由不使用更常见的 0-255 值作为 RGB,甚至是十六进制数字(如 html 中)?
【问题讨论】:
标签: cocoa-touch rgb uicolor
检查此方法时,我期望红色、绿色和蓝色在 0-255 范围内。相反,它是 0-1。
只有我觉得这很奇怪吗?
是否有任何理由不使用更常见的 0-255 值作为 RGB,甚至是十六进制数字(如 html 中)?
【问题讨论】:
标签: cocoa-touch rgb uicolor
在我看来这并不奇怪。 0-255 和 0.0-1.0 级别都广泛用于不同的平台。您始终可以使用以下方式进行转换:
#define FLOAT_COLOR_VALUE(n) (n)/255.0
【讨论】:
有时 RGB 值表示为浮点值而不是 0 到 255 的原因是因为 0 到 255 假定您使用 8 位来表示每个颜色分量,因此必须为帧缓冲区中的每种颜色使用 24 位。如果您使用的显示器总共仅支持 256 色或超过 1600 万色等,则情况可能并非如此。 理论上,那么可以是无限数量的红色、绿色或蓝色阴影。用于表示它们的位数取决于表示颜色所需的准确度以及图形卡上有多少内存来表示图像等。 在许多情况下,0 到 255 就可以了。但是在另一个世界中它并不好,对于那些设备/准确的渲染要求,浮点数提供了一个非常需要的替代方案。
【讨论】: