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

时间:2017-03-20 14:30:07

标签: ios objective-c math rgba

我必须自定义iOS应用,指南说:

  

请勿使用0到255十进制表示法中的RGBA值,但请使用0.0   改为1.0算术符号!

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

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

2 个答案:

答案 0 :(得分:1)

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

例如" C7" - > 199 - > 255分之199。 - > 0.78。

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

答案 1 :(得分:1)

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

您的十六进制为0xC7,十进制为199,您将其除以255.0f,然后获得0.780f

在实践中UIColor已经提供methods来获取规范化值,您只需要转换十六进制表示法中的数字,这可以通过简单的library轻松完成:< / p>

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