2017-04-11 67 views
2

如果我申请filter: saturate(50%)#FF0000(即HSB:0,100,100),我希望能获得#FF8080(即HSB:0,50,100)什么是饱和和亮度CSS滤镜背后的算法?

但(你可以试试)

代替我得到#9B1B1B ......

什么是饱和和亮度过滤器背后的算法?

+0

您已经有了''100'饱和()'会增加饱和度值,饱和度值,但不能去超过100个这样我想重新计算新的值你所期待发生的事情是不饱和物质** **而且据我知道你不能使用负值 – DaniP

+0

我猜的差异来自于伽玛功能 – vals

+0

@DaniP我不这么认为中,W3Schools的网站说“0%(0)将会使图像完全不饱和的100%是默认和表示邻riginal图像” –

回答

1

的CSS滤镜饱和功能是基于SVG过滤器规格为feColorMatrix /饱和,但在sRGB色彩空间中执行。该应用矩阵如下:

| R' |  |0.213+0.787s 0.715-0.715s 0.072-0.072s 0 0 | | R | 
| G' |  |0.213-0.213s 0.715+0.285s 0.072-0.072s 0 0 | | G | 
| B' | = |0.213-0.213s 0.715-0.715s 0.072+0.928s 0 0 | * | B | 
| A' |  |   0   0    0 1 0 | | A | 
| 1 |  |   0   0    0 0 1 | | 1 | 

https://www.w3.org/TR/SVG/filters.html#feColorMatrixElement

相关问题