2017-04-11 69 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

相關問題