Как конвертировать изображения в формат ASCII в Linux
В этом руководстве рассказывается, как конвертировать изображения в формат ASCII в Linux. Для этой задачи мы будем использовать Jp2a. Jp2a — это инструмент командной строки, который поможет вам преобразовать заданные изображения в формат символов ascii. Вы можете указать смесь файлов изображений и URL-адресов, и инструмент Jp2a мгновенно преобразует их все в символы ascii. Jp2a имеет множество полезных опций для управления изображениями. Вот несколько вещей, которые Jp2a может сделать для вас!
- читать изображения со стандартного ввода,
- установить режим фона как светлый или темный,
- установить границу,
- установить высоту и ширину вывода,
- установить собственный размер для выходных изображений,
- перевернуть выходное изображение по вертикали или горизонтали,
- используйте определенные символы при создании выходного изображения ASCII,
- инвертировать изображения,
- загружать изображения из Интернета и конвертировать их,
- И много.
Установите Jp2a в Linux
Jp2a упакован для многих дистрибутивов Linux и доступен в репозиториях по умолчанию.
Чтобы установить Jp2a в Arch Linux и его вариантах, таких как Manjaro Linux, запустите:
sudo pacman -S jp2a
В Debian, Ubuntu, Linux mint:
sudo apt install jp2a
В Федоре:
sudo dnf install jp2a
В CentOS/RHEL:
sudo yum install epel-release
sudo yum install jp2a
В openSUSE:
sudo zypper install jp2a
Преобразование изображений в формат ASCII в Linux
Чтобы преобразовать данное изображение JPG/JPEG в формат символов ASCII, просто запустите:
jp2a <path-to-image>
Пример:
jp2a arch.jpg
Пример вывода:
MWXMWXWWXWWXWWXWWXWMXWMXNMNNMNNMNNMNNMNXWNXMWXWWXWWXWWXWMXWMXNMXNMNNMNNMNNMNXMNXMW
NWWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWdxWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNWNNWNkccxWWNWWNWWNWWNWWNWWNNWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNW0ccccOWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNWWNWW
NWWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWKlccccc0WNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNWNXlccccccl0WWNWWNWWNWWNWWNNWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNocccccccclXWNWWNWWNWWNWWNWWNNWNNWNNWNNWNNWWNWW
NWWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNdccccccccccoXWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNkccccccccccccoXWWNWWNWWNWWNNWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWNWWNWWNWWNNWNkccccccccccccccdNWNWWNWWNWWNWWNWWNNWNNWNNWNNWWNWW
NWWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNkccccccccccccccccdNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWXxccccccccccccccccdXWWNWWNWWNNWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWNWWNWWNNWNOoOXNklccccccccccccccdNWNWWNWWNWWNNWNNWNNWNNWNNWWNWW
NWWNNWNNWNNWNNWNNWWNWWNWWNWWNOccccok0kdcccccccccccccoXWNNWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNWWNNOcccccccccodoccccccccccccoXWWNWWNWWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWNWWNWWNkccccccccccccccccccccccccccoNWNWWNWWNWWNNWNNWNNWNNWWNWW
NWWNWWNNWNNWNNWNNWWNWWNWWNkccccccccccccccccccccccccccccoXWWNWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNWWNNkccccccccccccccccccccccccccccccoKWWNWWNNWNNWNNWNNWNNWWNWW
WWNWWNWWNWWNWWNWWNWWNWWNxcccccccccccccccccccccccccccccccclXWNNWNNWNNWNNWNNWNNWNNWW
NWWNNWNNWNNWNNWNNWWNWWXdcccccccccccccccccccccccccccccccccclKWWNWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNWWNNdccccccccccccccccccccccccccccccccccccl0NWNNWNNWNNWNNWNNWNNWW
WWNWWNWWNWWNWWNWWNWWXoccccccccccccccccdx0Oxdlcccccccccccccccl0WNWWNNWNNWNNWNNWWNWW
NWWNWWNNWNNWNNWNNWWKlcccccccccccccclkXWWNWWNNOlcccccccccccccccOWWNWWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNWWNKlcccccccccccccclKNWWNWWNWWNXocccccccccccccccONWNNWNNWNNWNNWWNWW
WWNWWNWWNWWNWWNWW0lcccccccccccccclXNNWNNWWNWWNWNoccccccccccccccckWNNWNNWNNWNNWNNWW
NWWNNWNNWNNWNNWNkccccccccccccccccONWWNWWNWWNNWNNXccccccccccccccccdNWNWWNWWNWWNWWNN
WWNWWNWWNWWNWWNkcccccccccccccccclNWNNWWNWWNWWNWWNdcccccccccloolcccdNWNNWNNWNNWWNWW
WWNWWNWWNWWNWWxcccccccccccccccccoNWNNWWNWWNWWNWWNkcccccccccccoxO0OddNNNWNNWNNWNNWW
NWWNNWNNWNNWXdccccccccccccccccccoWNWWNWWNWWNNWNNWkcccccccccccccclxKNXWWNWWNWWNWWNN
WWNWWNWWNWWXoccccccccccccccccccccXWNNWWNWWNWWNWWNdcccccccccccccccccoOXNWNNWNNWWNWW
WWNWWNWWNWXocccccccccccccccldxk00XWNNWNNWWNWWNWWNK0kxdlcccccccccccccccxKNNWNNWNNWW
NWWNNWNNWKlccccccccccldxO0NWNWWNWWNWWNWWNWWNNWNNWNNWNNWXK0xdlccccccccccl0WNWWMMMMM
WWNWWNWWOccccccccoxOXNWNWWNWWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNKOxoccccccccOWNWMMMMM
WWNWWNWOcccccox0NNWWNWWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNNWNNN0xoccccckNNMMMMM
NWWNNWkccok0XNWNNWWNWWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNWNNWWNWWNWWNWWNN0xocckWNWWNW
WWNWNxdOXWWNWWNWWNWWNWWNWWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNWWNWWNNWNNWNXOxxNNNWW
NWWNXNNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWWNWWNWWNNWNNWNNWNNWNNWNNWWNWWNWWNWWNWWNWNXWWNN
Просто, не так ли?
Вы можете указать несколько изображений и преобразовать их все за один раз.
jp2a img1.jpg img2.jpg
Эта команда преобразует данные изображения в ASCII и отображает их одно за другим.
Как я уже сказал, Jp2a имеет множество опций и флагов для управления входными изображениями. Рассмотрим использование некоторых опций на примерах.
Чтение изображений со стандартного ввода
Чтобы читать изображения из стандартного ввода и печатать символы ASCII в стандартном выводе, используйте команду pipe, как показано ниже.
cat arch.jpg | jp2a -
Обратите внимание на символ дефиса (-) в конце.
Записать вывод в файл
Вместо отображения изображения ASCII в стандартном выводе вы можете записать его в файл, как показано ниже.
jp2a arch.jpg --output=arch_ascii
Эта команда добавит вывод ASCII в текстовый файл с именем arch_ascii. Посмотреть содержимое файла можно с помощью команды «cat»:
cat arch_ascii
Печать изображений определенной высоты/ширины
Вы можете преобразовать изображение в формат ASCII и распечатать его с определенной высотой или шириной по вашему выбору.
Чтобы напечатать определенную высоту, например 30 строк, просто выполните:
jp2a --height=30 arch.jpg
Ширина будет автоматически рассчитана на основе соотношения сторон изображения.
Аналогично, чтобы указать ширину, выполните:
jp2a --weight=30 arch.jpg
Вы также можете объединить оба варианта и распечатать изображение.
jp2a --height=20 --width=40 arch.jpg
Печать изображений в формате ASCII в столбцах X и строках Y.
Следующая команда преобразует данный файл изображения в ASCII и печатает выходные данные в 50 столбцах и 30 строках.
jp2a --size=50x30 arch.jpg
Пример вывода:
Установить границу для символов ASCII
Если вы хотите установить границу вокруг вывода ASCII, используйте параметр border, как показано ниже:
jp2a --border --size=50x30 arch.jpg
Пример вывода:
Печать изображений на светлом/темном фоне
Jp2a имеет возможность печатать символы ASCII на светлом и темном фоне.
jp2a --background=light arch.jpg
jp2a --background=dark arch.jpg
Печать изображений в формате ASCII на темном фоне.
Если вы просматриваете изображение на белом фоне, но используете дисплей со светлыми символами на темном фоне, вам следует инвертировать изображение с помощью флага invert.
jp2a arch.jpg --invert
Пример вывода:
. . . . . . . . . . . . . . . . . . .
:;
,oo;
.oooo'
.looooo.
.looooool.
cooooooool.
:ooooooooooc.
,ooooooooooooc.
,oooooooooooooo:
,oooooooooooooooo:
.;oooooooooooooooo:.
'c'. ,loooooooooooooo:
'ooooc,.,:oooooooooooooc.
'oooooooooc:cooooooooooooc.
,ooooooooooooooooooooooooooc
,ooooooooooooooooooooooooooooc.
,ooooooooooooooooooooooooooooooc.
;ooooooooooooooooooooooooooooooool.
.:ooooooooooooooooooooooooooooooooool.
:ooooooooooooooooooooooooooooooooooool.
.coooooooooooooooo:;.';:loooooooooooooool.
.looooooooooooool,. 'looooooooooooooo'
.looooooooooooool. .cooooooooooooooo'
.looooooooooooool. cooooooooooooooo,
,oooooooooooooooo' .oooooooooooooooo:
,ooooooooooooooool :ooooooooolcclooo:
;oooooooooooooooooc ,oooooooooooc;'.'::
.:ooooooooooooooooooc ,ooooooooooooool;. .
.coooooooooooooooooooo. :oooooooooooooooooc'.
.coooooooooooooool:;,... ..,;:looooooooooooooo;.
.looooooooool:;'. ...;:looooooooool.
'ooooooooc;'. .';coooooooo'
'oooooc;. .;cooooo,
,ooc,.. .;coo,
;:'. .';;
. .
Печать изображений только с определенными символами
Вместо того, чтобы печатать изображение с символами по умолчанию, вы можете использовать некоторые собственные символы по вашему выбору.
jp2a --size=50x30 --chars=" ...sskk@@" arch.jpg
Загрузка изображений прямо из Интернета
Не только локальные изображения, можно напрямую загружать изображения из Интернета и конвертировать их в ASCII.
Чтобы загрузить изображения напрямую из Интернета и распечатать их в формате ASCII, запустите:
jp2a --size=50x30 https://upload.wikimedia.org/wikipedia/commons/d/dd/Linux_logo.jpg
Альтернативно, используйте программы curl или wget для загрузки изображений, и jp2a прочитает изображение из стандартного ввода, как показано ниже.
curl -s https://upload.wikimedia.org/wikipedia/commons/d/dd/Linux_logo.jpg | jp2a -
Конвертируйте изображения, отличные от JPG/JPEG.
Что делать, если у вас есть изображение другого типа, отличного от JPG/JPEG? В этом случае вы можете использовать инструмент ImageMagick's Convert, как показано ниже. ImageMagick доступен в репозиториях по умолчанию многих дистрибутивов Linux.
В Arch Linux и его вариантах, таких как Manjaro Linux:
sudo pacman -S imagemagick
В Debian, Ubuntu, Linux Mint:
sudo apt install imagemagick
После установки ImageMagick выполните следующую команду, чтобы преобразовать данное изображение формата PNG в формат Jpeg/Jpg, а затем преобразовать его в формат ASCII:
convert arch.png jpg:- | jp2a -
Обратите внимание на символ дефиса (-) в конце.
Точно так же вы можете просто преобразовать любой формат изображения в JPEG/JPG, а затем снова преобразовать его в формат ASCII.
Производить строгий вывод HTML
Jp2a имеет возможность выдавать строгий вывод XHTML 1.0.
jp2a --size=50x30 --html arch.jpg --output=arch.html
Пример вывода:
<?xml version='1.0' encoding='ISO-8859-1'?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns='http://www.w3.org/1999/xhtml' lang='en' xml:lang='en'>
<head>
<title>jp2a converted image</title>
<style type='text/css'>
body {
background-color: black;
}
.ascii {
font-family: Courier;
color: white;
font-size:8pt;
font-weight: bold;
}
</style>
</head>
<body>
<div class='ascii'><pre>
MNWNWNWWNWNWNMXMNWNWNWWNNXWNWXMXWNWNWNNWNWNWXMXWNW
NWNWNWWWWNWNWNWNWNWNWWWWkkNWNWNWNWNWWWWWWNWNWNWNWN
NWNWNWWWWWWNWNWNWNWNWWWKccKWNWNWNWNWWWWWWNWNWNWNWN
NWNWNWWWWWWNWNWNWNWNWWNoccoNNWNWNWNWWWWWWNWNWNWNWN
WNWNWWWWWWNWNWNWNWNWWWOcccckWNWNWNWNWWWWNWNWNWNWNW
WNWNWWWWNWNWNWNWNWNWWXlcccccKNWNWNWNWWWWNWNWNWNWNW
WNWWWWWWWWNWNWNWNWWWNdcccccclNWNWNWWWWWWWWNWNWNWNW
NWNWNWWWWNWNWNWNWNWNOccccccccxNWNWNWWWWWWNWNWNWNWN
NWNWNWWWWWWNWNWNWNWXlccccccccc0WNWNWWWWWWNWNWNWNWN
WWWWWWWWWWWWWWWWWWNNkccccccccclXWWWWWWWWWWWWWWWWWW
WNWNWWWWNWNWNWNWNWxlkKdccccccccoNNWNWWWWNWNWNWNWNW
WNWNWWWWWWNWNWNWNOccccddocccccccxNWNWWWWNWNWNWNWNW
WWWWWWWWWWWWWWWWKccccccccccccccccOWWWWWWWWWWWWWWWW
NWNWNWWWWNWNWNWXlcccccccccccccccccKWWWWWWNWNWNWNWN
NWNWNWWWWNWNWNNdcccccccccccccccccclXNWWWWNWNWNWNWN
WWWWWWWWWWWWWWxccccccccccccccccccccdNWWWWWWWWWWWWW
WNWNWWWWWWNWNOccccccccccccccccccccccxNWWNWNWNWNWNW
WNWNWWWWWWNWKccccccccclx0OklcccccccccOWWNWNWNWNWNW
WWWWWWWWWWWXlccccccccoXWWWWXdccccccccc0WWWWWWWWWWW
NWNWNWWWWNNocccccccclNWWNWNWNocccccccclXWNWNWNWNWN
NWNWNWWWWNdcccccccccOWWWNWNWNKcccccccccoNNWNWNWNWN
WWWWWWWWNxccccccccccXWWWWWWWWNlcccccldlcoNWWWWWWWW
WNWNWWWWOcccccccccccNWWWWNWNWNocccccccx0O0NWNWNWNW
WNWNWWW0ccccccccccccXWWWWNWNWNlcccccccccdKNWNWNWNW
NWNWNWKlcccccccccodkXWWWNWNWNNkdocccccccccdKWNWNWN
NWNWNXlccccccdk0NNWNWWWWNWNWNWNWNN0kdcccccclXNWMMM
NWNWNoccclx0NNWNWNWNWWWWNWNWNWNWNWNWWN0xlccclXWMMM
WNWNdclkKNNWNWNWNWNWWWWWWNWNWNWNWNWWWWWWNKklcdNWMW
WNWkxKNWWWNWNWNWNWNWWWWWWNWNWNWNWNWNWWWWNWNWKxkWNW
NWXNNWWNWNWNWNWNWNWNWWNWNWNWNWNWNWNWNWWNWNWNWNNNWN
</pre>
</div>
</body>
</html>
Это может быть полезно, если вы хотите просмотреть символы ASCII изображения в веб-браузере.
Доступно еще несколько опций, таких как переворот изображений в направлении X и Y, установка веса преобразования RGB в оттенки серого, использование цветов ANSI в выводе, использование высоты/ширины дисплея терминала и т. д. Чтобы научиться этому, обратитесь к разделу справки или страницам руководства. используй их.
Для получения помощи запустите:
jp2a --help
man jp2a
Рекомендуем прочитать:
- Как создать монтаж из изображений в Linux