我最近一直在研究一种颜色选择器应用程序,该应用程序允许用户选择颜色的色相,饱和度和明度。用户决定颜色后,我为用户提供与所选颜色匹配的不同配色方案。给定的某些配色方案是互补,分开互补,三合一,类似等等。
例如:如果用户选择红色作为颜色hsl(0,100%,50%),以确定互补色,则将180度添加到色相中,从而得到(180,100%,50%)是青色的。对于类似的方案,我加30减去30,依此类推。
一切都很好,直到我意识到这是网页颜色!
我仍将保留此功能,但现在我想创建类似于色素沉着的配色方案。例如,在现实生活中,红色的互补色将是绿色,而不是浅色的青色。有人可以向我介绍如何将hsl转换为色素沉着的资源吗?如何调整色调,使绿色与红色相反。

最佳答案

我在网上找到了一个脚本,该脚本能够将RYB转换为RGB。这是脚本的link

这样,很容易通过从255中减去分量来计算补色:

var color = [255, 0, 0],     //red in RYB
    complement = color.map(function(n){ return 255 - n; });  //green in RYB

ryb2rgb(complement);         //[0, 169, 51], which is green in RGB

演示:http://jsfiddle.net/DerekL/3m53wbsc/

使用RYB,您可以轻松地看到棕色是唯一没有补色的颜色。要将HSL转换为RGB,请参见以下答案:https://stackoverflow.com/a/9493060/283863

关于javascript - HSL色素沉着,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25706700/

10-13 05:06