从正常颜色和深色中获取 alpha

Getting alpha from normal and darken color

给定

darkColor = darken(normalColor, alpha)

darkColornormalColor 已知alpha 未知。

如何计算 alpha

如果出现多个颜色元组(normalColordarkColor),我应该如何插入 alpha?

根据 Less 文档,下面是 darken() 函数的定义方式:

Decrease the lightness of a color in the HSL color space by an absolute amount.

所以给定正常颜色及其变暗版本,找到百分比的逻辑是找出两者的亮度正常颜色,深色,然后从前者中减去后者。 Less 有一个内置函数来计算给定颜色的 lightness(),所以它可以直接使用。

@normalColor: #AAAAAA;
@darkColor: #6A6A6A; /* this is darken(@normalColor, 25%) */

#dummy{
  percentage: lightness(@normalColor) - lightness(@darkColor);
}

备注:

  • 计算是正常颜色的明度-深色的明度随着darken减少的明度。
  • 输出的是一个近似值,并不准确。例如,在上述情况下,输出为 25.09803922% 而不是 25%。我们也不能向下舍入输出值,因为偏差可以是正的也可以是负的。例如深色为#919191(=darken(@normalColor, 10%)),计算出的输出为9.80392157%.
  • 只有当深色实际上是正常颜色的加深版时,此方法才有效。即两种颜色的huesaturation应该是一样的,因为darken函数只修改了lightness.