如何使用颜色渐变推论颜色的相对百分比值

时间:2018-06-26 16:43:35

标签: javascript python colors hex rgb

我需要编写某种颜色的东西(通过任何格式,十六进制,rgb等),并根据在特定颜色渐变上可以找到该颜色的位置,来计算百分比值。< / p>

色阶

   %  HEX       R   G   B     HUE   SATURATION  VALUE
  0%  #FFFFFF   255 255 255   0°    0.0%        100.0%
 10%  #FFE98E   255 233 142   48°   44.3%       100.0%
 25%  #FFD072   255 208 114   40°   55.3%       100.0%
 50%  #FCB119   252 177 25    40°   90.1%       98.8%
 75%  #FA7E21   250 126 33    26°   86.8%       98.0%
100%  #E75800   231 88  0     23°   100.0%      90.6%

(可以在this gist中找到颜色的实际图像)

例如,如果颜色最终为#FFE8BA ,则该颜色将落在介于0%和10%之间的某个地方。

并不是我要帮助的特定代码(我什至还没有决定使用哪种语言,但是很可能是JS或Python),而是更多关于如何分析颜色并将其与特定的颜色渐变进行比较以返回颜色。

如果任何人有做类似事情的经验,任何建议将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:1)

那比我想象的要容易得多。我能够找到处理这些困难部分的现有代码或工具。

万一有人想知道我是怎么做的,首先我生成了从#FFFFFF#E75800的51种颜色的颜色渐变(使用this tool)。将它们存储在键0到100(代表百分比)的对象中,每隔一位跳过一次,就像这样:

var colors = {
    0: "FFFFFF",  2: "FEFBF9",  4: "FEF8F4",  6: "FDF4EF",  8: "FDF1EA", 
   10: "FCEEE5", 12: "FCEAE0", 14: "FBE7DB" // Truncated...
}
  

注意:您不需要跳过其他所有数字。我这样做是因为链接到的Take仅一次最多可以生成63种颜色(是的,我知道我可以多次运行)

然后从this SO post借用getSimilarColors函数,通过将提供的颜色与先前创建的对象内的值进行比较,找到最接近的匹配项。最接近匹配的元素的键是百分比。

谢谢。