Поиск по сайту:

Как конвертировать изображения в формат 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

Статьи по данной тематике