排序(十六进制)颜色以匹配彩虹
我有一个用十六进制表示的颜色列表-我需要对它们进行排序以匹配彩虹中的颜色顺序。-我可以对排序顺序进行硬编码-但我觉得有一种更简洁的方法。
回答:
在给定十六进制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元组进行排序,可以确保没有色相(即灰度)的颜色在一致的位置排序,并且具有相同色相但不同的饱和度/值的颜色相对于饱和度更高的颜色/尊贵的同行。
如果颜色因饱和度(强度)或值(亮度)的不同而大相径庭,那么您仍然会感到一团糟,但是没有办法解决。
以上是 排序(十六进制)颜色以匹配彩虹 的全部内容, 来源链接: utcz.com/qa/422247.html