Бандинг Градиентов.
Проблема
При работе с градиентами, особенно в тёмных палитрах, можно наткнуться на линии стыков цветов, это и есть бандинг.
У бинарного пикселя есть только 2 состояния — вкл/выкл. В третьей степени это 8 цветов, а у двух битного пикселя мы видим уже 64 возможных цвета.
Большинство современных дисплеев используют 8 битные цвета, но есть и более профессиональные варианты, вроде 10 битных HDR дисплеев. В случае с последними бандинг градиентов будет гораздо менее выраженный. Но качество картинки у остальных пользователей от этого не поменяется.
Причина
Когда мне жизненно необходимо вставить линейный градиент 0,0,0 - 255,0,0 в изображение имеющее 780 пикселей в ширину бандинг цветов будет происходить примерно каждые 3 пикселя. Это напрямую связано с количеством доступных для монитора цветов, и так как монитор не может показать 780 оттенков, то он просто растянет доступные 256 на 780 пикселей.
Решение
Заставить всех купить 10 битные мониторы — отличная идея, но всё же есть более простые способы справиться с бандигом в изображениях. Dithering (в переводе “колебания”) добавляет очень слабый шум поверх градиентов, тем самым размывая границы встречи двух оттенков цвета. Его можно применить как к изображению целиком, либо сделать отдельный слой шума поверх градиента.
Пример того как это будет выглядеть сразу после этого абзаца.