はじめに
テストに用いるデータなど、サーバ上にあるイメージ(画像)を確認したいときないですか?このファイルなんだっけ?みたいな。そんなとき、jp2a を使えば画像を ASCII 表示できます。テキストで表示されるので、手軽にコンソールからも確認できるってことです。
Talinx/jp2a: Converts jpg/png images to ASCII
Ubuntu 22.04 でインストールされる版は PNG も扱えるようになっています。20.04 ではちょっと古くて PNG 未対応だったので、個別にビルドする方は v1.1.0 以降を使用すると良いと思います。
22.04 LTS (Jammy Jellyfish):
tagi@ubuntu-vm ~ % apt show jp2a Package: jp2a Version: 1.1.1-1 Priority: optional Section: universe/graphics Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Joao Eriberto Mota Filho <eriberto@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 77.8 kB Depends: libc6 (>= 2.34), libcurl3-gnutls (>= 7.16.2), libjpeg8 (>= 8c), libpng16-16 (>= 1.6.2-1), libtinfo6 (>= 6) Homepage: https://github.com/Talinx/jp2a Task: lubuntu-desktop, ubuntu-mate-core, ubuntu-mate-desktop Download-Size: 28.9 kB APT-Manual-Installed: yes APT-Sources: http://jp.archive.ubuntu.com/ubuntu jammy/universe amd64 Packages Description: converts jpg and png images to ascii Small utility that converts JPEG images to ASCII (text) using libjpeg. It also can convert PNG pictures to ASCII via libpng. jp2a is very flexible. It can use ANSI colors and html in output. . jp2a can also download and convert images from Internet via command line.
20.04.4 LTS (Focal Fossa):
tagi@ubuntu-vm ~ % apt show jp2a Package: jp2a Version: 1.0.9-1 Priority: optional Section: universe/graphics Origin: Ubuntu Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com> Original-Maintainer: Joao Eriberto Mota Filho <eriberto@debian.org> Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 62.5 kB Depends: libc6 (>= 2.7), libcurl3-gnutls (>= 7.16.2), libjpeg8 (>= 8c), libtinfo6 (>= 6) Homepage: https://github.com/Talinx/jp2a Download-Size: 20.7 kB APT-Manual-Installed: yes APT-Sources: http://jp.archive.ubuntu.com/ubuntu focal/universe amd64 Packages Description: converts jpg images to ascii Small utility that converts JPG images to ASCII (text) using libjpeg. jp2a is very flexible. It can use ANSI colors and html in output. . jp2a can also download and convert images from Internet via command line.
例
画像ファイルを指定すると ASCII 文字に変換して、標準出力します。
tagi@ubuntu-vm ~ % jp2a Linux_logo.jpg MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMW0d:,'.',;lxKMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMK: .;kWMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMd ';. .0MMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMd ... dMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMW. kMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMO 'MMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMk 'dx:. 'okO0:. XMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMO '0ldK0 'NX::xNk OMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMX ;o ..K...'X; .oM' kMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMW..0;.;dkkkdkd'.,X0 dMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM. :ddkkOO0KKK00OOl lMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM'.ldkkOO0KK00Oxddx. XMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMM, 'loxkkkxxdoddxxo. ;,. .NMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMW. cOdlldoooodxO0XKo ,' .XMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMX' OX0OkxddxO0KNMMMMd .KMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMx. .KMMN00OO0KNWMMMMMMMx xMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMK, 'NMMMMMWNWWMMMMMMMMMMMc ,XMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMNc .0WMMMMMMWMMMMMMMMMMMWWX cXMMMMMMMMMMMMM MMMMMMMMMMMMMMMMO ;kKNWMMWNNWWMMMMWNXKK00Kx. xMMMMMMMMMMMM MMMMMMMMMMMMMMMK 'ONWMMMMMWMMMMMMMMMMMWNXKKK, . kMMMMMMMMMMM MMMMMMMMMMMMMMM; 'NMMMMMMMMMMMMMMMMMMMMMMMMWXX, . KMMMMMMMMMM MMMMMMMMMMMMMMx 'NMMMMMMMMMMMMMMMMMMMMMMMMMMMMN... . .WMMMMMMMMM MMMMMMMMMMMMM0 'NMMMMMMMMMNMMMMMMMMMMMMMMMMMMMMl . lMMMMMMMMM MMMMMMMMMMMM0 . KMMMMMMMMMWNMMMMMMMMMMMMMMMMMMMM0 . NMMMMMMMM MMMMMMMMMMMx . lMMMMMMMMMMWNMMMMMMMMMMMMMMMMMMMMX . kMMMMMMMM MMMMMMMMMMO .. OMMMMMMMMMMNNMMMMMMMMMMMMMMMMMMMMN . dMMMMMMMM MMMMMMMMMMl . KMMMMMMMMMMNNMMMMMMMMMMMMMMMMMMMMX . OMMMMMMMM MMMMMMMMMM0;ldl. lNMMMMMMMMMNNMMMMMMMMMMMMMMMMMWNNd ...WMMMMMMMM MMMMMMMMMNxkOOOOd'.c0MMMMMMMNNMMMMMMMMMMMMMMMMWkO0O. 'kNMMMMMMMM MMW0kkkkxxkOOOOOOOl .oNMMMMMMMMMMMMMMMMMMMMMWXkOkd. ;kOOWMMMMMMM MMOxkOOOOOOOOOOOOOOx. ;OMMMMMMMMMMMMMMMMMMW00xkkxo:,'',:dkOOOKMMMMMMM MMOxkOOOOOOOOOOOOOOOk. ,WMMMMMMMMMMMMMMMMW0OdxkkxxdddxkOOOOOO0NMMMMM MMKdkOOOOOOOOOOOOOOOOO; XMMMMMMMMMMMMMMMMWO:lxkOOkkkkOOOOOOOOOO0XWMM MMKdkOOOOOOOOOOOOOOOOOOlcOWMMMMMMMMMMMMMMMMO; .lxkOOOOOOOOOOOOOOOOOOkNM MMkdkOOOOOOOOOOOOOOOOOOOdxXMMMMMMMMMMMMXx:. .lxkOOOOOOOOOOOOOOOOkkKMM M0oxkOOOOOOOOOOOOOOOOOOkxc.':ldxxdol:,. 'lxkOOOOOOOOOOOkxxOKNMMMM MKxoodddxxxkkkOOOOOOOOOxoc, ,ldkOOOOOOkkxdx0XMMMMMMMM MMMMNXKOxdlccllodxxxkxdl:,. ',;clccccccccc::,..:loxxxxxdolkXMMMMMMMMMMM MMMMMMMMMMMWXKOxl:;:::;,'cOXMMMMMMMMMMMMMMMMMWo,;:cccc::xNMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMX0kxxOXMMMMMMMMMMMMMMMMMMMMMMN0xddxkKWMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
サイズの指定もできます。デフォルトではターミナルいっぱいになるように表示されます。
tagi@ubuntu-vm ~ % jp2a --size=40x20 Linux_logo.jpg MMMMMMMMMMMMMMMMMXOkOXMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMK;. .,oNMMMMMMMMMMMMMM MMMMMMMMMMMMMO . kMMMMMMMMMMMMM MMMMMMMMMMMMM; '. ';, WMMMMMMMMMMMM MMMMMMMMMMMMM:c'o:.cx.ld KMMMMMMMMMMMM MMMMMMMMMMMMMd'odkOOOdkc kMMMMMMMMMMMM MMMMMMMMMMMMMx.ddkkxxdxc ...KMMMMMMMMMMM MMMMMMMMMMMM0.:XOxxk0XWWo dMMMMMMMMMM MMMMMMMMMMO' xMMWNWMMMMMMx .kWMMMMMMM MMMMMMMMW, :XWMMWWMMWWNXKo .KMMMMMM MMMMMMMMc xMMMMMMMMMMMMMMWX.. KMMMMM MMMMMMW: OMMMMMWMMMMMMMMMMMo .MMMMM MMMMMW. .'MMMMMMNMMMMMMMMMMMk XMMMM MMMMMN:l:,OMMMMMNMMMMMMMMMWNo ..WMMMM MX00OkOOOOc.:OWMWMMMMMMMMNOOo. .:OKMMMM MOkOOOOOOOOx. KMMMMMMMMMKokkxxxkOOO0NWM MOkOOOOOOOOOOoOMMMMMMMXx; ;kOOOOOOOOOk0M NxxxxkkkOOOOOx:..''.. :xOOOOkk0KNWMM MMMWNX0Okdoc::ox0KXXXXXKKOc:cllxKWMMMMMM MMMMMMMMMMMWNMMMMMMMMMMMMMMMNNMMMMMMMMMM
使用する文字を変更することもできます(デフォルトでは ...',;:clodxkO0KXNWM
が使われています)。
tagi@ubuntu-vm ~ % jp2a --size=80x25 --chars=" ...xx@@" Linux_logo.jpg @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@xx... ....xx@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@. ..... .x@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@. x@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@x ...... ...xxx.. .@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@x .x...xx ..x@....x@. x@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@. .x..xxxxxxxxx...xx. x@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@. .xxxxxxx@@@xxxxxxx. .x@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@. .xxxxxxxxxxxxxxxxxx. .... .x@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@x. .x@@@xxxxxxx@@@@@@@@@x. .x@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@x.. .@@@@@@@@@@@@@@@@@@@@@@@@. ..x@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@.. .x@@@@@@@@@@@@@@@@@@@@@@@@@.. .x@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@x . .x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@x. ... .x@@@@@@@@@@@@ @@@@@@@@@@@@@@@@. .. .x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@x .. .. .@@@@@@@@@@@ @@@@@@@@@@@@@@x. . x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. .. .@@@@@@@@@@ @@@@@@@@@@@@.. .. .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. . x@@@@@@@@@ @@@@@@@@@@@@.......x@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. . .. .@@@@@@@@@@ @@@@@@@@@@@xxxxxxxx...xx@@@@@@@@@@@@@@@@@@@@@@@@@@@@@xxxx. ...x@@@@@@@@@@ @@@xxxxxxxxxxxxxxxxxxx. ..xx@@@@@@@@@@@@@@@@@@@@@@@@xxxxx........xxxxx@@@@@@@@@ @@@xxxxxxxxxxxxxxxxxxxxx.. x@@@@@@@@@@@@@@@@@@@@xxxxxxxxxxxxxxxxxxxxxx@@@@@@@ @@@xxxxxxxxxxxxxxxxxxxxxxxx.x@@@@@@@@@@@@@@@@@@@x.. ..xxxxxxxxxxxxxxxxxxxxxxxx@@ @@xxxxxxxxxxxxxxxxxxxxxxxxxx....xxxxxxxxx..... ..xxxxxxxxxxxxxxxxxxx@@@@@@@ @@@@xxxxxxxxxxxxxxxxxxxxxxx.... ......................xxxxxxxxxxxxxx@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@xxxxx......xx@@@@@@@@@@@@@@@@@@@@@@xx......xxxx@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
URL を指定することにより、ネットのイメージも直接変換できます。
% jp2a http://www.google.com/intl/en/logos/easter_logo.jpg MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMWWNXXXXNNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWXX00OxoONWMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMWN0xoooddddooccldxOKWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNOxo::OKWMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMWKxccdk0KKKKK00Oxlc;,'oXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNOxo;ckKWMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMWKd;:dOO0KXNWWWNNNXKOc;lkKNWMMMMMMWNNNNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMW0xl;cOXWMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMWOc':xk0XWWMMMMMMMMMWNK0O0XWMMMMWW0xl:;:lkNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWOxc,cOXWMMMMMMMWNNNWMMMMWNNXWNMMMMM MMMWKo',dOKNWMMMMMMMMMMMMMWWWWWMMMMMNX00koc;,,:kNMMMMMMMMMMMMWWXOkdolod0WMMMMMMWWKkkkxxkxdddoxXWWOxc,lOXWMMWN0kxkkxdxkOXWXlxoddWMMMM MMWXd:.:kKNWMMMMMMMMMMMMMMMMMMMMMMMW0Oxdc:;,;...cKWMMMMMMMMWKkdxxxxdc;,'lKWMMWXkldOKKOxc:;;cxKNNNOxc,l0NWWXkoxOKKKKkolc:dXNNWWWMMMMM MMWOo;.:OXWMMMMMMMMMMMMMMMMMMMMMMMW0kkkXk;;dOl';,lKWMMMMMMWKxk;:l::ollc,.;KWW0d;:O0XNXX0l;;',0NWNOxc,l0NW0d:lO0XNNNKx:;;ckNWMMMMMMMM MMWOc;.;OXWMMMMMMMMMMMMMMMMMMMMMMMWXNNXXXkdK0ko:;;oKWMMMWXO000kk0d;:;;''''oKKdc';OXWMMWN0l;'.xNWNOxc,l0NXxl;oOKK0kxxdddxk0XWMMMMMMMM MMWKl:,'oXWMMMMMMMMMMWWXXXXXXK0NMMNXNNNNXxdKKOoc:,cdXMMW0kOK0KK0kxoool'...cxOc:,'dXWMMMMNx;.'xXWNOxc,l0X0ol:cxkkO0KKKKKKXNWMMMMMMMMM MMWNx;;,,dNWMMMMMMMMWKOxxkxo:'lXWWWNWWWNXd:kKO:,;';lOWMNl:xKNXK0dlxdoc;,'.cd0d;,',kWWWWWKl',oOXWNOxc,l0X0ol:;xKXXXXNWWWMMMMMMMMMMMMM MMMWXo,,,,l0WMMMMMMMWWNXKKxc'.l0XWWKK00Xk::;ol'...;cxWW0xxddkdlcckdlc'',':cxKXkl;,,oO0OdcldkOXWMNOxc,lOXXdcc:cxXWWMMMMMMMMMMMMMMMMMM MMMMWXd;',,,lONWWMMWWWWWWNOc'.l0NWMN00kdllcc;,,,',:ckNW0oxOkdlc:,lc,.',';clONWNX0kxkol:,:k0KNWMMNOxl,l0NWKdc::clOXWWMMMWWNWMMMMMMMMM MMMMMWXOo:,'',;ok0XNNNNNX0l'.'o0NWMWX0OOOkxoc:,'',:l0WMNdccoddlc,'.....;clxXMMMWWNXKkc;,,:dKWMMMXdc;,:dOXNKxl:;::coxkkxx0XWMMMMMMMMM MMMMMMWNX0kdlc:::cclodxxxxxddxOKWMMMWNOo:,''''',;cd0WMMWNkl,''',,'''',:clkXWMWN0kxxxdl:,',,;lKWWXOxooodkXWWNKkdlccllodkKXNWWMMMMMMMM MMMMMMMMMWNNX00OOOO000KKKKKKXXNWMMMMMMMWXOdllclld0NMMMMMMMNOl;,,,,;:::cdKWMWKx:cdOKKK0Oxo:,,';KWWNXKKKKXNWMMWNXK00OO00KXNWMMMMMMMMMM MMMMMMMMMMMMMWWWNNNNNNWWWWWMMMMMMMMMMMMMMMWWNNNWWMMMMMMMMMMWKkdolllloxOXMMNko,:kO0KXNNNXK0xc,.dXWMMMWWWMMMMMMMMMWWWWWWWMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWNNXNNWWMMMM0l:':kKNWMMMMMWWNk;,dKNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWKc,,,cONMMMMMMMW0c,oOKWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN0o;''':oxkkkxdoodkOKNWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWX0xdllloodxkOKKKKXWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWNXKKK00KKKXXNWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMWWWWWWWWWMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
さらには色付き表示も可能です。
おわりに
画像は標準入力も可能です。ImageMagick の convert コマンドとパイプで繋ぐことにより、様々な画像フォーマットを ASCII 変換できます。
convert somefile.gif jpg:- | jp2a - --width=80
update-motd と併用すると、ログイン時のメッセージに適用できます。