我有一张红色的平面png图片,我想使用CSS过滤器将其更改为特定的颜色。我认为这是最好的方法。
我正在使用SASS,通过使用它,我可以获得颜色的色相、饱和度和亮度。通过使用一个“红色”图像,意味着色相的旋转角度从0开始,因此通过使用hue-rotate
,我会将它从0旋转到特定颜色的色相角度。饱和度和亮度同理。
filter: hue-rotate(hue(#50e3c2)) saturate(saturation(#50e3c2)) brightness(lightness(#50e3c2));
这将输出为:
filter: hue-rotate(166.53061deg) saturate(72.41379%) brightness(60.19608%);
如果我检查特定颜色的HSL值...
Hex: #50E3C2
HSL: 167° 72% 60%
RGB: 80 227 194
然而,当应用此方法时,图像非常暗。 看起来色调正确,但饱和度和亮度不对吗?对我哪里出了问题有什么想法吗?我查看了这个示例:如何计算所需的色调旋转以生成特定颜色?,但似乎出现了同样的问题。 https://jsfiddle.net/gosj0ur2/
brightness
函数是一个乘数,因此你实际上是将原始红色(31%)的亮度乘以60%。但如果你想要绝对达到60%,你应该将其乘以194%! - Mr Lister