Кто из Вас после прочтения ранних журналов на компьютерную тематику, как российских, так из многих зарубежных натыкаясь на изображение псевдографического характера и тотчас сделать себе такое, может даже похвастаться перед несведущими, хотя так уже точно не стоит делать, но все же. Такое изображение состояло из комбинирования специальных символов, таких как: ?,#$/\ да и многих других. Как мне помнится я сам пытался под Windows в блокноте нарисовать что-то такое, чтобы радость от того, что это я сделал сам и оно хоть и имеет отдаленный вариант что было в журналах, но моё. Я посредством google искал программы которые с генерируют мне данное изображение/текст на основе исходного слова, но все было не то, да и платно преимущественно. Не отрицаю, что может в то время я плохо искал, но результат был на лицо. Со временем свою затею создания текстового баннера на основе специальных символов я отложил на не определенный срок, и вот это время настало. В данной заметке я расскажу и покажу, как создавать текстовые баннеры в моей любимой системе Ubuntu 12.04.5 Server amd64 задействовав мощь консоли:
Итак, посредством репозитариев системы находим такую утилиту, как — figlet, что же подразумевает данное слово, а слово состоящее из букв одной фразы: Frant, Ian & Glenn’s Letters
ekzorchik@srv-serv:~$ apt-cache search figlet
figlet – Frank, Ian & Glenn’s Letters
Что же может данная утилита?, а может она считать поток ввода или принимать сообщения как часть из командной строки.
Ниже покажу на примере, но сперва установлю ее в систему, в этой процедуре нет ничего сложного:
ekzorchik@srv-serv:~$ sudo apt-get install figlet -y
отобразим название моего блога посредством ASCII графики:
ekzorchik@srv-serv:~$ figlet ekzorchik
ну как Вам оно, здорово правда, я не мог не нарадоваться тому, что наконец таки вернулся к своей затеи создавать ASCII изображения.
Еще одна приятная особенность — это подгруздка файла содержащего текст:
ekzorchik@srv-serv:~$ cat >> file << EOF
> ekzorchik.ru
> EOF
ekzorchik@srv-serv:~$ figlet -p < file
_ _ _ _
___| | __ _______ _ __ ___| |__ (_) | __ _ __ _ _
/ _ \ |/ /|_ / _ \| ‘__/ __| ‘_ \| | |/ / | ‘__| | | |
| __/ < / / (_) | | | (__| | | | | < _| | | |_| |
\___|_|\_\/___\___/|_| \___|_| |_|_|_|\_(_)_| \__,_|
Некоторые аргументы запуска:
-f
для выбора файла шрифта. (файлы шрифтов имеют расширение: flf, список доступных шрифтов:
ekzorchik@srv-serv:~$ sudo find / -type f -name *.flf
/usr/share/figlet/mini.flf
/usr/share/figlet/standard.flf
/usr/share/figlet/smslant.flf
/usr/share/figlet/smscript.flf
/usr/share/figlet/digital.flf
/usr/share/figlet/slant.flf
/usr/share/figlet/term.flf
/usr/share/figlet/block.flf
/usr/share/figlet/small.flf
/usr/share/figlet/shadow.flf
/usr/share/figlet/smshadow.flf
/usr/share/figlet/big.flf
/usr/share/figlet/mnemonic.flf
/usr/share/figlet/bubble.flf
/usr/share/figlet/script.flf
/usr/share/figlet/banner.flf
/usr/share/figlet/lean.flf
/usr/share/figlet/ivrit.flf
можете потренироваться со всеми из них поочередно, чтобы оценить, какой же шрифт Вам больше нравиться:
-d
для смены директории с шрифтами.-c
расположить вывод по центру.-l
расположить вывод слева.
ekzorchik@srv-serv:~$ figlet -f digital -l -p < file
+-+-+-+-+-+-+-+-+-+-+-+-+
|e|k|z|o|r|c|h|i|k|.|r|u|
+-+-+-+-+-+-+-+-+-+-+-+-+
-r
расположить вывод справа.
ekzorchik@srv-serv:~$ figlet -f digital -r -p < file
+-+-+-+-+-+-+-+-+-+-+-+-+
|e|k|z|o|r|c|h|i|k|.|r|u|
+-+-+-+-+-+-+-+-+-+-+-+-+
-t
установить ширину вывода по ширине терминала.-w
определить ширину вручную.
ekzorchik@srv-serv:~$ figlet -f digital -l -w 15 -p < file
+-+-+-+-+-+-+
|e|k|z|o|r|c|
+-+-+-+-+-+-+
+-+-+-+-+-+-+
|h|i|k|.|r|u|
+-+-+-+-+-+-+
-k
включить кернинг, печатать каждого символа отдельно, вместо объединения соседних букв.
ekzorchik@srv-serv:~$ figlet -f digital -l -k -p < file
+-++-++-++-++-++-++-++-++-++-++-++-+
|e||k||z||o||r||c||h||i||k||.||r||u|
+-++-++-++-++-++-++-++-++-++-++-++-+
Если все таки Вам не достаточно, тех flf файлов, но можно подгрузить дополнительные, я бы их назвал, как эффекты начертания:
Для этого есть сайт посвященный данной утилите figlet, на нем представлено все то многообразие различных шрифтов, кое должно удовлетворить даже самых притязательных:
http://www.figlet.org/fontdb.cgi
ekzorchik@srv-serv:~$ wget -c http://www.figlet.org/fonts/stellar.flf
ekzorchik@srv-serv:~$ wget -c http://www.figlet.org/fonts/block.flf
ekzorchik@srv-serv:~$ figlet -f block.flf "ALEX" -k
Довольно необычно ведь.
Можно и комбинируя передавать команды утилите figlet: (отобразим текущее время)
ekzorchik@srv-serv:~$ date +%r | figlet -f digital
+-+-+-+-+-+-+-+-+ +-+-+
|0|1|:|2|3|:|0|6| |A|M|
+-+-+-+-+-+-+-+-+ +-+-+
Вот еще один пример, автоматического обновления текущего времени в консоли с использованием выше преведенной команды:
ekzorchik@srv-serv:~$ watch --interval 1 " date +%r | figlet -f digital "
Вот собственно и все, не забывайте, что все задумки реализуемы, а имея такой конструктор, как Ubuntu система все можно воплотить в реальность. В последующих заметках я буду Вас знакомить с моими задумками, которые я реализовал. С уважением, автор блога — ekzorchik.