理论上,每种可能的颜色更改CSS filter function(例如grayscale
,invert
,opacity
,saturate
,sepia
)都存在通过svg过滤器feColorMatrix
可实现的等效转换。
实际上,几乎所有此类操作都在here中进行了描述。
例如,棕褐色是以下内容的简写:
<filter id="sepia">
<feColorMatrix type="matrix"
values="(0.393 + 0.607 * [1 - amount]) (0.769 - 0.769 * [1 - amount]) (0.189 - 0.189 * [1 - amount]) 0 0
(0.349 - 0.349 * [1 - amount]) (0.686 + 0.314 * [1 - amount]) (0.168 - 0.168 * [1 - amount]) 0 0
(0.272 - 0.272 * [1 - amount]) (0.534 - 0.534 * [1 - amount]) (0.131 + 0.869 * [1 - amount]) 0 0
0 0 0 1 0"/>
</filter>
hue-rotate
虽然稍微复杂一些,但实际定义是:
这与Chromium中的implemented差不多。
我的问题是-该系数背后的确切数学是什么-为什么选择了这些系数?它们代表一些无理数的近似值吗?