2011-04-07 106 views
0

是否有一种算法(我已经搜索,并没有提出太多),给定一个十六进制值,能够返回颜色名称?它不必是任何特定的东西,任何蓝色的阴影都会返回,因为只有'蓝色'很好。如何将十六进制值转换为颜色名称

简而言之,是否有一个由十六进制值和它们对应的颜色族组成的大型列表。我已经找到了名单,但它们似乎只有几百种颜色。

我看到了this post,但那里的解决方案似乎只将颜色分解为三个区域。

EDIT

我改变了RGB text file,使得每种颜色将只落入以下色彩范围:

  • 白色
  • 灰色
  • 品红
  • 棕色
  • 黑色
  • 蓝色
  • 绿色
  • 绿松石
  • 黄色
  • 橙色
  • 红色
+1

正如您在文章中指出的那样,将RGB色彩空间转换为HSV或HSL可能是最简单的方法。您可以确定远远超过三个区域。您可以根据需要以不同的颜色分隔色相。 V或L会告诉你颜色是白色还是黑色。饱和度会告诉你它是否灰色。 – 2011-04-07 05:04:22

回答

2

正如你说你已经找到了名单,那么很简单。

计算RGB(例如)颜色的Euclidean Distance,并将该颜色称为最近的名称。

顺便说一下,超过一百种颜色对于人类语言来说实际上是一个很大的数字,即使只有一百种颜色,普通人也许无法区分不同颜色之间的差异。

1

rgb.txt是用于颜色名称的常用列表。找到最接近的三联体并称之为。

相关问题