Как пользоваться
- Нажмите Выбрать фото или перетащите изображение в поле. Фото читается на вашем устройстве.
- Выберите Число цветов. От шести до десяти подходят большинству фото; больше цветов дают больше деталей и больше красок для покупки.
- Выберите Наименьшая область, затем нажмите Создать рисунок. Большое фото может обрабатываться до минуты.
- Прочитайте Палитра, затем сохраните контур кнопкой Скачать контур (PNG) для печати или предпросмотр цвета отдельной кнопкой.
Как создаётся рисунок
Каждый пиксель объединяется с другими похожего цвета методом k-средних в пространстве CIE L*a*b*, где расстояния совпадают с тем, что видит глаз. Начальные группы выбираются методом k-means++ с фиксированным начальным значением, поэтому одно и то же фото всегда даёт один и тот же рисунок.
Мелкие области затем объединяются с соседом, с которым у них самая длинная общая граница, поэтому в рисунке нет пятнышек, слишком маленьких для росписи. Каждая связная область одного цвета — это область рисунка. Цвета нумеруются от самого частого, и каждая область получает номер своего цвета. Контур проводится по краям областей.
Цвета: k-средних в CIE L*a*b* при выбранном числе цветов
Мелкие области: объединяются с соседом с самой длинной общей границей
Положение номера: пиксель, самый далёкий от всех краёв своей области
- Рисунок делается по копии размером до 800 пикселей по длинной стороне; контур рисуется вдвое больше, поэтому печатается чётко.
- Номер каждой области ставится с помощью дистанционного преобразования (distance transform, на английском), которое даёт каждому пикселю расстояние до ближайшего края; номер ставится туда, где это расстояние наибольшее.
Печать и роспись рисунка
Распечатайте контур и закрасьте каждую область краской с её номером. Номер 1 — самый частый цвет, поэтому он покрывает больше всего; дайте каждому цвету высохнуть, прежде чем следующий коснётся его.
Область, слишком узкая для номера, рисуется без него. Чтобы пронумеровать больше областей, выберите большую наименьшую область или меньше цветов; чтобы сохранить больше деталей, выберите тонкую настройку и примиритесь с большим числом узких областей.
Пример расчёта: красная и синяя половины
Изображение 20 × 10 пикселей: слева красное, справа синее; при двух цветах получаются две области по 100 пикселей. Контур — одна линия посередине: по одному пикселю в каждой строке, всего десять.
Каждая область получает номер там, где она шире всего. В красной половине самая широкая точка удалена на четыре пикселя от каждого края, в (4, 4); в синей — в (14, 4), тоже на четыре пикселя от краёв.
| Показатель | Результат |
|---|---|
| Областей | 2 |
| Пикселей контура | 10, по одному в строке |
| Положения номеров | (4, 4) и (14, 4) |
| Палитра | #FF0000 и #0000FF, по 100 пикселей |
Частые вопросы
Почему у области нет номера?
Область уже, чем номер, и не может его вместить, поэтому рисунок оставляет её без номера. Выберите большую наименьшую область или меньше цветов, чтобы каждая область была достаточно широкой для своего номера.
Почему результат каждый раз одинаков?
Цвета группируются из фиксированной начальной точки, поэтому одно и то же фото, число цветов и наименьшая область всегда дают один и тот же рисунок и палитру.
Сколько цветов выбрать?
От шести до десяти цветов подходят большинству фото и делают рисунок читаемым. Для детского листа берите меньше, для подробного снимка — больше, помня, что каждый цвет — это краска, которую нужно купить.
Загружается ли моё фото?
Нет. Фото читает ваш браузер, а рисунок создаёт рабочий скрипт на вашем устройстве. Ничего никуда не отправляется, а работа останавливается, если она длится дольше минуты.
Что такое настройка наименьшей области?
Это наименьшая площадь, которая сохраняется как отдельная область, в доле изображения. Меньшие области объединяются с соседями, и рисунок становится проще для росписи.
Источники
- Википедия (на английском): distance transform (расстояние от каждого пикселя до ближайшего края)
- Википедия (на английском): k-means++ (Arthur и Vassilvitskii, 2007, аккуратный выбор начальных точек k-средних)
- Википедия (на английском): CIELAB colour space (L*a*b*, для группировки цветов)
Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..