Colors 如何根据输入距离计算选定颜色的色调、饱和度和亮度值

Colors 如何根据输入距离计算选定颜色的色调、饱和度和亮度值,colors,formulas,hsl,Colors,Formulas,Hsl,给定一个起始十六进制代码,我想知道以升序和降序计算亮度线性值的数学方法。色调和饱和度相同 我很难准确地描述我想要什么,因为我发现这一页使用了我需要的精确算法: 如果您查看页面,您会注意到最后3个重拨按钮的内容为:按色调线性、按饱和度线性、按亮度线性。每个,以升序向您提供与原始十六进制代码相对应的十六进制代码列表 例如,对于亮度,他们给出了以下列表(来自颜色FFCE2E): FFCE2E FFDA61 FF694 FFF2C7 FFFEFA 我需要公式 提前感谢。您可以从多个地方将其混合在一起。

给定一个起始十六进制代码,我想知道以升序和降序计算亮度线性值的数学方法。色调和饱和度相同

我很难准确地描述我想要什么,因为我发现这一页使用了我需要的精确算法:

如果您查看页面,您会注意到最后3个重拨按钮的内容为:按色调线性、按饱和度线性、按亮度线性。每个,以升序向您提供与原始十六进制代码相对应的十六进制代码列表

例如,对于亮度,他们给出了以下列表(来自颜色FFCE2E): FFCE2E FFDA61 FF694 FFF2C7 FFFEFA

我需要公式


提前感谢。

您可以从多个地方将其混合在一起。简而言之,您需要:

  • 拾取颜色的HSL值。这可能是通过将RGB转换为HSL()来实现的,或者在网站上,您只需在调色板上选择它
  • 现在您有了3个组件(H、S和L),并且根据您选择的复选框,您开始按编辑框中给定的%值递减组件
  • 您将在减量过程中获得一个值列表,现在将从HSL值反向转换为RGB()

    //我将从中使用rgbToHsl和hslToRgbhttps://stackoverflow.com/questions/2353211/hsl-to-rgb-color-conversion
    var initialRGB=[ir,ig,ib];
    var initialHSL=rgbToHsl(initialRGB[0],initialRGB[1],initialRGB[2]);
    var howManyVariants=4;
    var递减率=0.1;//10%
    //此示例适用于色调更改
    var递减=初始HSL[0]*递减百分比;
    对于(变量i=0;i
  • 类似地,如果希望通过饱和度获得一组变化,则只减少第二个参数/分量,如果希望改变发光,则改变第三个参数


    希望这是清楚的。

    这个问题在
    // I gonna use rgbToHsl and hslToRgb from https://stackoverflow.com/questions/2353211/hsl-to-rgb-color-conversion
    var initialRGB = [ir, ig, ib];
    var initialHSL = rgbToHsl(initialRGB[0], initialRGB[1], initialRGB[2]);
    var howManyVariants = 4;
    var decrementPercent = 0.1;  // 10%
    // This example is for hue change
    var decrement = initialHSL[0] * decrementPercent;
    for (var i = 0; i < howManyVariants; i++) {
      // Linear decrementation
      var nextHue = initialHSL[0] - i * decrement;
      var nextColor = hslToRgb(nextHue, initialHSL[1], initialHSL[2]);
      // visualize somehow
    }