CSS中的Invert()使用的颜色转换公式是什么?

时间:2019-04-29 08:13:17

标签: css image image-processing css-filters

我遇到了CSS中的invert()函数,该函数将图像颜色空间中的颜色反转。它采用百分比形式输入值,例如invert(60%)或数字(包括0到1),例如invert(.6),然后根据输入反转图像颜色。

然后我偶然发现了这个站点,该站点有使用invert()函数的几个示例

https://developer.mozilla.org/en-US/docs/Web/CSS/filter-function/invert

当输入为1或100%时,我了解invert函数的工作原理,但是我无法理解invert(50%)的工作原理,因为它将图像完全变成灰色。

我认为公式将类似于:

abs(255 - value of each pixel's individual channel value)

将255更改为128不能完全将图像变成灰色吗?

所以我找不到用于计算取反值的公式。

2 个答案:

答案 0 :(得分:1)

invert(amount)的公式是

amount*(255-value)+(1-amount)*value

让1上得到

255-value

得到0即可得到

value

对于.5,您会得到

.5*(255-value)+(1-.5)*value
127.5-.5*value+.5*value
127.5

它将是灰色的,因为公式中的值已完全消除

答案 1 :(得分:0)

无论实际功能如何,如果它将(r, g, b)的任何值转换为(128, 128, 128),然后将it completely turns the image into grey转换。

255,  50, 100 => 128, 128, 128
200, 255, 200 => 128, 128, 128
...