tinycolor.py 是一个用于 Python 的颜色操作和转换的库。它支持多种形式的输入,同时提供颜色转换和一些其他的实用功能。
$ pip3 install tinycolor.py
$ [sudo] python3 setup.py install
import tinycolor
print(tinycolor.is_valid('#FFFFFF'))
from tinycolor import *
print(is_valid('#FFFFFF'))
#FFF
#FFFFFF
#FFFC
#FFFFFFCC
rgb(255, 255, 255)
rgba(255, 255, 255, .8)
获取颜色的格式,如果获取不到格式,则抛出一个 RuntimeError
color = '#FFFFFF'
get_format(color) # 'Hex'
color = 'rgb(255, 255, 255)'
get_format(color) # 'RGB'
color = 'ABCDEF123'
get_format(color) # RuntimeError('Not a color!')
判断颜色格式是否合法
color = '#FFFFFF'
is_valid(color) # True
color = 'rgb(255, 255, 255)'
is_valid(color) # True
color = 'ABCDEF123'
is_valid(color) # False
将短 Hex 或 8-digit Hex 格式色值转换为长 Hex 或 8-digit Hex 格式色值
color = '#FFF'
short_hex_to_long(color) # '#FFFFFF'
color = '#FFFFFF'
short_hex_to_long(color) # '#FFFFFF'
color = 'rgb(255, 255, 255)'
short_hex_to_long(color) # RuntimeError('Not a hex color!')
分别获取颜色 R、G、B 三通道的十进制色值
color = '#FFFFFF'
to_r_g_b(color) # 255, 255, 255
color = 'rgb(255, 255, 255)'
to_r_g_b(color) # 255, 255, 255
color = '#FFFFFFCC'
to_r_g_b(color) # 255, 255, 255
color = 'rgba(255, 255, 255, .5)'
to_r_g_b(color) # 255, 255, 255
分别获取颜色 R、G、B、Alpha 四通道的十进制色值
color = '#FFFFFFCC'
to_r_g_b_a(color) # 255, 255, 255, 0.8
color = 'rgba(255, 255, 255, .5)'
to_r_g_b_a(color) # 255, 255, 255, 0.5
color = '#FFFFFF'
to_r_g_b_a(color) # 255, 255, 255, 1
color = 'rgb(255, 255, 255)'
to_r_g_b_a(color) # 255, 255, 255, 1
将颜色转换为 Hex 格式色值
color = 'rgb(255, 255, 255)'
to_hex(color) # '#FFFFFF'
color = '#FFF'
to_hex(color) # '#FFFFFF'
color = 'rgb(255, 255, 255, .8)'
to_hex(color) # '#FFFFFF'
color = '#FFFC'
to_hex(color) # '#FFFFFF'
将颜色转换为 8-digit Hex 格式色值
color = 'rgb(255, 255, 255, .8)'
to_hex8(color) # '#FFFFFFCC'
color = '#FFFC'
to_hex8(color) # '#FFFFFFCC'
color = 'rgb(255, 255, 255)'
to_hex8(color) # '#FFFFFFFF'
color = '#FFF'
to_hex8(color) # '#FFFFFFFF'
将颜色转换为 RGB 格式色值
color = '#FFFFFF'
to_rgb(color) # 'rgb(255, 255, 255)'
将颜色转换为 RGBA 格式色值
color = 'rgba(255, 255, 255, .5)'
to_rgba(color) # 'rgba(255, 255, 255, 0.5)'
color = '#FFFFFFCC'
to_rgba(color) # 'rgba(255, 255, 255, 0.8)'
返回颜色的感知亮度,基于 Web Content Accessibility Guidelines (Version 1.0) 的定义
color = '#000000'
get_brightness(color) # 0
color = 'rgb(255, 255, 255)'
get_brightness(color) # 255
返回颜色的感知亮度,基于 Web Content Accessibility Guidelines (Version 2.0) 的定义
color = '#000000'
get_luminance(color) # 0
color = 'rgb(255, 255, 255)'
get_luminance(color) # 1
返回颜色的感知亮度是否为暗
color = '#000000'
is_dark(color) # True
color = 'rgb(255, 255, 255)'
is_dark(color) # False
返回颜色的感知亮度是否为亮
color = '#000000'
is_light(color) # False
color = 'rgb(255, 255, 255)'
is_light(color) # True