如果将filter: saturate(50%)应用于#FF0000(即HSB:0、100、100),我希望获得#FF8080(即HSB:0、50、100)

但是(您可以尝试)

相反,我得到#9B1B1B ...

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

最佳答案

CSS滤镜饱和度功能基于feColorMatrix / saturate的SVG滤镜规范,但在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

关于css - 饱和和亮度CSS滤波器背后的算法是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43351165/

10-12 18:44