Как пользоваться
- Выберите или перетащите фото.
- Задайте ступени цвета на канал: чем их меньше, тем площе и ярче картинка.
- Задайте сглаживание, чтобы убрать мелкую текстуру до того, как цвета будут обрезаны.
- Настройте силу контуров и толщину линий для чёрных линий.
- Скачайте результат. Размер останется как у оригинала; файлы JPEG и WebP сохраняются в своём формате, остальные — в PNG.
Как работает
- Сглаживание: быстрое размытие — три прямоугольных размытия подряд, что близко к размытию по Гауссу с выбранным радиусом в пикселях.
- Плоские цвета: каждое значение канала v округляется до одной из n ступеней: round(v / 255 × (n − 1)) × 255 / (n − 1).
- Контуры: оператор Собеля измеряет, как быстро меняется яркость вокруг пикселя, как |Gx| + |Gy|. Пиксель становится чёрным, когда это значение достигает порога 60 + (100 − сила) × 6: при 100 % порог 60, при 50 % — 360. Толщина линии w раздувает каждый пиксель линии до квадрата со стороной 2w − 1 пикселей: при толщине 1 линии остаются в пиксель, при 2 — квадраты 3 × 3.
Пример
При 2 ступенях n − 1 = 1: значение канала 100 становится round(100 / 255 × 1) = round(0,39) = 0, а 200 — round(200 / 255 × 1) = round(0,78) = 1, то есть 1 × 255 / 1 = 255. При 3 ступенях n − 1 = 2: 100 даёт round(100 / 255 × 2) = round(0,78) = 1, то есть 1 × 255 / 2 = 127,5, в файле — 128. Так что уровни — 0, 128 и 255.
При сглаживании 0 px резкая граница между тёмно-серым (40) и светло-серым (220) даёт значение края (220 − 40) × 4 = 720 — намного больше 60, так что она рисуется чёрной линией даже при силе 50 % (порог 360). Сглаживание растягивает ту же границу на несколько пикселей: при стандартных 3 px её значение около 150, и линией она становится только примерно с силы 85 % (порог 150).
Советы
- Портреты лучше всего выглядят при 4–6 ступенях, сглаживании 3–5 px и умеренных контурах.
- Для плаката или поп-арта возьмите 2–3 ступени и уберите линии.
- Шумные фото, снятые при слабом свете, дают много мелких линий: сначала увеличьте сглаживание, потом уменьшите силу контуров.