Насыщенность - это примерно разница между max (r, g, b) и min (r, g, b). То есть в цветовом пространстве rgb 0-1.0 насыщенный синий имеет вид b = 0,9, r = g = 0,1. Бледно-синий имеет b = 0,9 r = g = 0,7.
Если вы увеличите контраст в пространстве r, g, b, это повлияет на насыщенность. Это самый быстрый способ вычислить изменение контраста. Повышение контрастности означает перемещение (либо с помощью кривой s, либо с помощью ползунка контрастности) значения ниже 0,5 далее, а значения выше 0,5 - вверх, и наоборот для уменьшения контрастности. Это делается для каждого цветового канала независимо. Таким образом, b 0,9 становится 1,0, а r = g = 0,0, теперь разница 1,0 против 0,8 до. Разница между максимальным и минимальным, таким образом, выше. У бледно-голубого цвета максимальное и минимальное значение цветового канала возрастают до, возможно, отсечения при b = 1,0 и r = g = 0,95, разница 0,05 против 0,2 ранее.
Также гамма изменяет отношения между каналами, поэтому влияет на насыщенность.
Теперь вместо применения изменения контраста к значениям RGB мы можем преобразовать цветовое пространство в YUV, LAB или HSV / HSI, где мы отделяем яркость от цвета. Тогда мы можем изменить гамму и контраст без изменения цвета. Сложности возникают при восприятии человеком того, что восприятие цветов и насыщенности меняется с яркостью, а мониторы и отпечатки также подвергаются передаточным функциям, которые влияют на эти вещи. Так что формулы не идеальны. XYZ-> LAB попытался принять это во внимание, но для преобразования в одну сторону требуется много обработки, а затем снова для отображения результата.