Hex 和 RGB 两种颜色表示法:
[1] - RGB:三通道颜色,从颜色的发光原理来设定的, 相当于红绿蓝三个颜色通过不同亮度, 来组合成为需要的颜色;0为最暗, 255为最亮;红绿蓝三色通道, 外加alpha透明度, 来展示几乎所有的颜色.
[2] - Hex:十六进制颜色,通过16进制0~F这16个字符来表达颜色,000000为黑色, FFFFFF为白色
Hex 与 RGB 中的每个颜色都有一一对应关系:
RGB的数值 = 16 * HEX的第一位 + HEX的第二位
如,
RGB - 92, 184, 232,
92 / 16 = 5余12 -> 5C
184 / 16 = 11余8 -> B8
232 / 16 = 14余8 -> E8
HEX = 5CB8E8
Hex - F26BC1
F2 = 15和2 -> 15 * 16 + 2 = 242
6B = 6和11 -> 6 * 16 + 11 = 107
C1 = 12和1 -> 12 * 16 + 1 = 193
Python 实现如下:
#Hex2RGB
def hex2rgb(hex):
h = hex.lstrip('#')
return tuple(int(h[i:i+2], 16) for i in (0, 2, 4))
#RGB2Hex
def rgb2hex(rgb):
r, g, b = rgb
return ('#{:X}{:X}{:X}').format(r, g, b)
#
print(hex2rgb('#c96d9d'))
print(rgb2hex((201, 109, 157)))