16进制颜色转换rgb是什么呢?不知道的小伙伴来看看小编今天的分享吧!
16进制颜色转换RGB原理:
+ (UIColor *)ml_colorWithHex:(UInt32)hex alpha:(CGFloat)alpha{
CGFloat score_R = (hex & 0xFF0000) >> 16;
CGFloat score_G = (hex & 0xFF00) >> 8;
CGFloat score_B = (hex & 0xFF);
0xF86340 & 0xFF0000,表示F86340和0xFF0000进行与运算,目的是要取出F86340的前两位F8,因为F8表示red颜色通道的值,取出来的值已经是转换好的十进制的了。
0xF86340
十六进制: F 8 6 3 4 0
二进制: 1111 1000 0110 0011 0100 0000
0xFF0000
十六进制: F F 0 0 0 0
二进制: 1111 1111 0000 0000 0000 0000
位运算
0xF86340二进制: 1111 1000 0110 0011 0100 0000
运算符: &
0xFF0000二进制: 1111 1111 0000 0000 0000 0000
(计算结果)二进制: 1111 1000 0000 0000 0000 0000
通过位运算得到结果的1111 1000 0000 0000 0000 0000,如果将此二进制数转换为十进制数,是一个非常大的数,而每个颜色通道的最大值是255,所以还需要通过位移运算,将得到的结果控制到最大范围内。
常见的几种表示颜色的方法有:
ColorName: 直接用颜色的名称来指定颜色,比如: red blue green yellow
优点: 很直观的表达想要使用的颜色
缺点: 颜色的名称很少, 不能有效表示一些较为丰富的颜色
RGB: 三通道颜色
他是目前运用最广泛的颜色系统之一
可以通过红绿蓝三色通道, 外加alpha透明度, 来展示几乎所有的颜色
RGB是从颜色的发光原理来设定的, 相当于红绿蓝三个颜色通过不同亮度, 来组合成为需要的颜色
0为最暗, 255为最亮
HEX: 十六进制颜色
十六进制与RGB都可以展示出非常丰富的颜色, 他是通过16进制0~F这16个字符来表达颜色的
同样, 000000为黑色, FFFFFF为白色
以上就是小编今天的分享了,希望可以帮助到大家。