Что такое гамма
Гамма — нелинейная связь между числом, записанным в пикселе, и яркостью, которую вы видите. Значение 128 из 255 — это не половина света, а примерно пятая его часть, потому что кодирование ведётся со степенным преобразованием около 2,2. Так сделано намеренно: глаз различает тёмные оттенки гораздо тоньше светлых, и нелинейная шкала тратит скудные 256 значений там, где они заметны. Побочный эффект — арифметика над пикселями перестаёт быть честной арифметикой над светом.
Коротко о цифрах
- Показатель степени
- около 2,2 в привычном экранном пространстве
- Середина шкалы
- 128 из 255 — примерно 22 % яркости белого
- Зачем шкала изогнута
- глаз тоньше различает тёмное, чем светлое
- Где мешает
- усреднение пикселей при уменьшении и полупрозрачные наложения
- Что делаем мы
- не трогаем тон: обработка в том же пространстве, что и оригинал
Почему середина шкалы не середина яркости
Возьмите значение ровно посередине диапазона и посчитайте долю света: половина в степени 2,2 даёт примерно 0,22. То есть средний серый по числу — это чуть больше пятой части яркости белого. Глаз, впрочем, соглашается: именно такой оттенок кажется ему серединой между чёрным и белым, ради чего шкала и была изогнута.
Проблема начинается там, где числа складывают. Смешать поровну чёрный и белый пиксель значит получить 128 — то есть визуальную середину, но не половину света. Если бы то же смешение шло в линейном пространстве, результат был бы заметно светлее. Отсюда классические жалобы на потемневшие края при уменьшении картинки и на грязный оттенок полупрозрачных наложений.
Где нелинейность даёт о себе знать
- Уменьшение изображения: соседние пиксели усредняются, и на границах контрастных областей результат выходит темнее, чем ожидает глаз.
- Полупрозрачные наложения: водяной знак с прозрачностью 0,3 смешивается по числам, а не по свету.
- Перевод в оттенки серого: разные формулы дают разный результат, и цветной текст на цветной подложке может слиться или, наоборот, стать контрастнее.
- Сравнение картинок «на глаз» на двух мониторах: разная настройка передаточной характеристики сдвигает всю шкалу.
Что здесь делаем мы и чего не делаем
Ручки гаммы у наших инструментов нет, и мы её не двигаем. Обработка идёт на холсте браузера в том же пространстве, в котором картинка была открыта, поэтому тон исходника не сдвигается: сжатие меняет количество деталей, а не яркость. Это осознанный выбор — тихая коррекция тона на документе, который человек собирается отправить в банк, была бы вмешательством, о котором он не просил.
Если после обработки картинка всё же выглядит иначе, причина почти всегда не в гамме, а в цветовом профиле: файл нёс собственное описание цвета, а просмотрщик читает результат как обычный экранный. Разбираться нужно с профилем, и об этом отдельный термин.
Частые вопросы
Нужно ли править гамму перед отправкой документа?
Нет. Скан и без того читается, а изменённый тон при печати ведёт себя непредсказуемо: то, что на вашем мониторе выглядит нормально, у получателя может выйти серым или пережжённым.
Почему одна и та же картинка на двух мониторах разного тона?
У экранов разные настройки передаточной характеристики и яркости, и без калибровки сравнивать их бессмысленно. Файл при этом не меняется — меняется только то, как устройство превращает числа в свет.
Отчего края объектов темнеют после уменьшения фотографии?
Усреднение соседних пикселей идёт по числам, а числа связаны с яркостью нелинейно. На контрастной границе среднее число даёт меньше света, чем даёт настоящее среднее двух яркостей.
Связаны ли гамма и контраст?
Связаны, но это не одно и то же. Контраст растягивает или сжимает шкалу по краям, а гамма изгибает её в середине, поэтому она меняет полутона, почти не трогая чистый чёрный и чистый белый.