【问题标题】:How to convert a hex value into a color name如何将十六进制值转换为颜色名称
【发布时间】:2011-07-31 08:46:53
【问题描述】:

有没有一种算法(我已经搜索过但没有想出太多),给定一个十六进制值,能够返回颜色名称?它不必太具体,任何蓝色的阴影都只是“蓝色”就可以了。

或者说,在某个地方是否有一个包含十六进制值及其相应颜色系列的大列表。我找到了列表,但它们似乎只有几百种颜色。

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

编辑

我更改了RGB text file,使每种颜色只属于以下颜色范围:

  • 白色
  • 灰色
  • 洋红色
  • 棕色
  • 黑色
  • 蓝色
  • 绿色
  • 绿松石色
  • 黄色
  • 橙色
  • 红色

【问题讨论】:

  • 正如您在帖子中指出的那样,将 RGB 颜色空间转换为 HSV 或 HSL 可能是最简单的方法。您可以确定的区域远不止三个。您可以根据需要将色调分离为多种不同的颜色。 V 或 L 会告诉您颜色是白色还是黑色。饱和度会告诉你它是否是灰色的。

标签: colors hex


【解决方案1】:

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

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

顺便说一句,一百多种颜色对于人类语言来说其实是一个很大的数字,即使只有一百种颜色,普通人也不一定能分辨出不少颜色之间的区别。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-05-11
      • 1970-01-01
      • 2015-04-12
      • 2020-04-20
      • 1970-01-01
      • 2011-12-09
      • 2011-02-28
      • 2017-01-01
      相关资源
      最近更新 更多