Теоретически для каждой возможной изменяющей цвет css функции фильтра s, такой как grayscale
, invert
, opacity
, saturate
, sepia
, существует эквивалентное преобразование, достижимое с помощью фильтра svg feColorMatrix
.Фактически, почти все такие операции описаны здесь .
Например, сепия - это сокращение для:
<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.
Мой вопрос будетбыть - какая точная математика стоит за этими коэффициентами - почему именно они были выбраны?Они обозначают приближения некоторых иррациональных чисел или чего-то еще?