如何将十六进制值转换为颜色名称
问题描述:
是否有一种算法(我已经搜索,并没有提出太多),给定一个十六进制值,能够返回颜色名称?它不必是任何特定的东西,任何蓝色的阴影都会返回,因为只有'蓝色'很好。如何将十六进制值转换为颜色名称
简而言之,是否有一个由十六进制值和它们对应的颜色族组成的大型列表。我已经找到了名单,但它们似乎只有几百种颜色。
我看到了this post,但那里的解决方案似乎只将颜色分解为三个区域。
EDIT
我改变了RGB text file,使得每种颜色将只落入以下色彩范围:
- 白色
- 灰色
- 品红
- 棕色
- 黑色
- 蓝色
- 绿色
- 绿松石
- 黄色
- 橙色
- 红色
答
正如你说你已经找到了名单,那么很简单。
计算RGB(例如)颜色的Euclidean Distance,并将该颜色称为最近的名称。
顺便说一下,超过一百种颜色对于人类语言来说实际上是一个很大的数字,即使只有一百种颜色,普通人也许无法区分不同颜色之间的差异。
正如您在文章中指出的那样,将RGB色彩空间转换为HSV或HSL可能是最简单的方法。您可以确定远远超过三个区域。您可以根据需要以不同的颜色分隔色相。 V或L会告诉你颜色是白色还是黑色。饱和度会告诉你它是否灰色。 – 2011-04-07 05:04:22