在给定十六进制RGB颜色规范的情况下,以下函数返回其HSV颜色:
import colorsysdef get_hsv(hexrgb): hexrgb = hexrgb.lstrip("#") # in case you have Web color specs r, g, b = (int(hexrgb[i:i+2], 16) / 255.0 for i in xrange(0,5,2)) return colorsys.rgb_to_hsv(r, g, b)
现在,您可以使用此功能通过色相对RGB十六进制颜色列表进行排序:
color_list = ["000050", "005000", "500000"] # GBRcolor_list.sort(key=get_hsv)print color_list
通过使用整个HSV元组进行排序,可以确保没有色相(即灰度)的颜色在一致的位置排序,并且具有相同色相但不同的饱和度/值的颜色相对于饱和度更高的颜色/尊贵的同行。
如果颜色因饱和度(强度)或值(亮度)的不同而大相径庭,那么您仍然会感到一团糟,但是没有办法解决。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)