Генератор ASCII-арта превращает текст или изображения в картинки, собранные исключительно из букв, цифр и знаков препинания. Разработчики используют его для баннеров в терминале, заголовков в README, заставок CLI-утилит, украшения логов, ретро-арта в чатах — да и просто чтобы было веселее писать консольные тулзы.
Чаще всего встречаются два формата. *Текстовый баннер* отрисовывает слово крупным многострочным шрифтом — классический вид figlet. *Картинка в ASCII* подбирает символы под яркость пикселей исходного изображения и выдаёт чёрно-белую «прорисовку» картинки одной только клавиатурой.
ASCII-арт — это просто текст, поэтому он работает везде, где работает текст: вывод в терминале, лог-файлы, README на GitHub, сообщения в Slack, комментарии в исходниках. Никаких картинок, никакого рендеринга, никаких битых ссылок — то, что нужно там, где графику использовать нельзя.
Что вы поймёте, поиграв с ASCII-артом
Шрифты для баннеров бывают самые разные — блочные, наклонные, с тенью, 3D — и у каждого своя атмосфера.
Конвертация картинки в ASCII работает так: алгоритм усредняет яркость по маленьким областям изображения и подбирает символ с подходящей «плотностью» (@, #, *, ., ).
Моноширинный шрифт — критично. ASCII-арт ровно выстраивается только в шрифте, где у каждого символа одинаковая ширина: это терминалы, блоки кода в README и большинство шрифтов для кода.
Как сделать ASCII-арт — пошагово
1
Выберите режим: текст или картинка
В текстовом режиме слово превращается в баннер. В режиме картинки загруженное изображение отрисовывается в виде ч/б ASCII.
2
Выберите шрифт (текстовый режим)
Полистайте figlet-шрифты — Standard, Slant, Big, Block, Shadow, 3D. Каждый сразу показывает превью с вашим текстом.
3
Подкрутите разрешение (режим картинки)
Задайте ширину вывода в символах и контраст. Чем больше колонок, тем больше деталей и тем шире результат.
4
Скопируйте или скачайте
Скопируйте арт в буфер обмена или сохраните в .txt. Дальше — в README, в скрипт-баннер или в чат.
Шпаргалка по ASCII-арту
Где встречается ASCII-арт и как сделать, чтобы он не развалился.
Сценарий
Что подойдёт
На что обратить внимание
Баннер в терминале
Шрифты Block / Big / Slant
Ширина — у большинства терминалов 80 символов
Заголовок в README
Внутри блока кода с тройными бэктиками
Вне блока кода Markdown схлопывает пробелы в начале строки
Заставка CLI
Печать при первом запуске
Цвет — отдельно (ANSI-escape-последовательности)
Украшение логов
Короткий слоган в одну строку
Должно читаться на бегу — логи прокручиваются быстро
Рендер картинки
Чёрно-белые фотографии
Цветные теряют информацию — переведите в оттенки серого заранее
Сырая многострочная строка (raw) сохраняет обратные слэши буквально, так что Python не «съест» их при экранировании. Тот же приём работает в bash (с одинарными кавычками) и в любом языке, где есть литералы строк без экранирования.
Типичные ошибки с ASCII-артом
Вставить ASCII-арт в пропорциональный шрифт (Times, Helvetica) и удивляться, почему всё съехало. Нужен моноширинный шрифт.
Забыть, что Markdown схлопывает подряд идущие пробелы и убирает отступы в начале строки вне блоков кода. Всегда заворачивайте арт в `.
Выбрать шрифт шире, чем целевое окно. Большинство терминалов — 80 символов; всё, что шире, переносится и ломает рисунок.
FAQ по ASCII-арту
Что такое ASCII-арт?
ASCII-арт — это картинки и баннеры, целиком собранные из букв, цифр и знаков препинания. Поскольку это просто текст, он работает везде, где отображается текст: в терминалах, в README, в логах, в сообщениях чатов.
Как картинка превращается в ASCII?
Изображение разбивается на сетку из мелких ячеек. Для каждой считается средняя яркость и подбирается символ с похожей «плотностью»: плотные символы (@, #, M) — для тёмных областей, разрежённые (., ,, ) — для светлых.
Что такое figlet?
FIGlet — оригинальная Unix-утилита, которая рисует текст в виде ASCII-баннера. Именно из неё пошли почти все известные шрифты (Standard, Slant, Big, 3D, Shadow). Онлайн-генераторы обычно используют ту же коллекцию.
Где уместно использовать ASCII-арт?
Баннеры в терминале, заставки CLI, заголовки в README, разделители секций, ретро-чаты — везде, где хочется добавить декор без графики. Не стоит пихать его в серьёзные пользовательские интерфейсы — там это будет только шум.
Везде ли арт отобразится корректно?
Нужны моноширинный шрифт и достаточно места по горизонтали. Внутри блока кода в Markdown или в терминале — всё ровно. А вот в пропорциональном шрифте (пузырёк чата, документ Word) выравнивание развалится.