如何获得RGB颜色的名称?

时间:2013-09-08 04:41:36

标签: java colors

如何在Java中找到像素的颜色名称?我找到了像素的RGB值,但不知道如何从像素中获取名称“黄色”。

3 个答案:

答案 0 :(得分:2)

我没有遇到过让你这样做的Java API的一部分。这是您最有可能需要自己实现的功能,特别是因为并非所有rgb颜色组合都有名称。

您可以开始的一个地方是使用在Wikipedia list of colors page等网站上提供的rgb颜色值和名称创建查找表。

但是,由于并非每个rgb值的组合都会映射到定义的颜色,因此您需要提出一种算法来将一组值映射到最接近的颜色。这可能与计算像素的rgb值和每个颜色名称的rgb值之间的均方误差有关。然后,您可以选择分数最低的颜色名称。

这里有一些代码(注意,它可能无法编译),它说明了计算均方误差的ColorNameLookup类如何找到最接近的匹配颜色名称可以起作用:https://gist.github.com/nightlark/6482130

答案 1 :(得分:2)

java中有一些标准颜色,其他可以使用RGB或HSB构造函数生成。 无法获取颜色名称,因为可能存在许多RGB值组合(256 x 256 x 256)。只有少数组合有名称(标准颜色,如白色,红色,黄色,黑色等)

答案 2 :(得分:1)

我相信,你的问题已经解决了。

如果您要查找任何可能的RGB值组合的颜色名称,这将需要一个详尽的存储空间,您已经将所有可能的RGB值映射到唯一的颜色名称。

这意味着,在此地图与您同在之前,您的问题无法100%正确回答。但是,你可以肯定找到java.awt.Color类中定义的颜色的颜色名称。

因此,您还可以使用java中的反射来查找java.awt.Color中定义的公共静态最终颜色属性列表,并且对于您拥有的每个RGB值,您可以在所有声明的{{{ 1}}在java。