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

2024-10-03 21:36:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要写一些东西,将采取一种颜色(通过任何格式,十六进制,rgb等),并根据该颜色将在一个特定的颜色梯度上找到,一个百分比值可以计算出来。你知道吗

色标

   %  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),不如说是关于如何分析颜色并将其与特定颜色渐变进行比较以返回颜色的详细信息。你知道吗

如果有人有这样做的经验,任何建议将不胜感激。你知道吗

谢谢!你知道吗


Tags: value颜色格式rgbhue百分比梯度hex
1条回答
网友
1楼 · 发布于 2024-10-03 21:36:39

好吧,那比我想象的容易多了。我能够找到现有的代码或工具,照顾的硬部分。你知道吗

如果有人想知道我是怎么做到的,首先我生成了一个从#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...
}

Note: You don't need to skip every other digit. I just did that because the took I linked to only allows up to 63 colors to be generated at once (yes, I know I could just run it multiple times)

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

谢谢。你知道吗

相关问题 更多 >