Фильтр принимает до 16 значений в следующем порядке,
colorchannelmixer=rr:rg:rb:ra:gr:gg:gb:ga:br:bg:bb:ba:ar:ag:ab:aa
Каждое значение может варьироваться от 0.0
до 1.0
Фильтр применяет четыре линейных уравнения.
Предположим, что цвет входного пикселя RGBA равен (192,64,128,200)
а выражение равно
colorchannelmixer=.3:.4:.3:0:.1:.54:.3:0:1:.2:.5
Таким образом, выходное значение R будет .3x192 + .4x64 + .3x128 + 0x200 = 121.6 => 122
Выходное значение G будет .1x192 + .54x64 + .3x128 + 0x200 = 92.16 => 92
Выходное значение B будет 1x192 + .2x64 + .5x128 + 0x200 = 268.8 => 255
(поскольку ba
не установлена, используется значение по умолчанию 0. Так как результат переполняет максимальное значение, оно обрезается до максимального значения 255
)
Выходное значение A будет 0x192 + 0x64 + 0x128 + 1x200 = 200 => 200
(поскольку ни одно из ar:ag:ab:aa
не задано, используется значение по умолчанию 0:0:0:1
)