RGBA 十进制表示法到算术表示法

RGBA decimal notation to arithmetic notation

我必须自定义一个 iOS 应用程序,指南说:

Please don’t use RGBA values in 0 to 255 decimal notation, but use 0.0 to 1.0 arithmetic notation instead!

例如,指南中的默认应用程序颜色#70C7C6 转换为 (0.298, 0.792, 0.784, 1.000)。

如何转换其他颜色?我以前从来不知道这个算术符号

将字符串十六进制值转换为整数,然后将每个值除以 255 得到算术符号。

例如 "C7" -> 199 -> 199/255。 -> 0.78.

最后一个值是不透明度,在您的情况下听起来总是 1。

颜色分量是指定范围内的数字,在使用十六进制或整数值时,您(通常)有一个 0-255 中的数字(如果以十六进制工作,则由 0x00-0xFF 表示)。但是您可以通过在 0.0-1.0 范围内对其进行归一化来表示相同的值,方法是将每个分量除以最大允许值,例如:

你有 0xC7 的十六进制,也就是 199 的十进制,你用它除以 255.0f 得到 0.780f.

实际上UIColor已经提供methods to obtain normalized values, you just need to convert a number from hex notation, which can be done easily or by using a simple library:

UIColor* color = [UIColor colorWithCSS:@"70c7c6"];
CGFloat r, g, b, a;
[color getRed:&r green:&g blue:&b alpha:&a]