Tato příručka učí, jak převádět obrázky do formátu ASCII v Linuxu. Pro účely tohoto úkolu budeme používat Jp2a . Jp2a je nástroj příkazového řádku, který vám pomůže převést daný obrázek(y) do formátu znaků ASCII. Můžete zadat směs obrazových souborů a adres URL a nástroj Jp2a je všechny okamžitě převede na znaky ASCII. Jp2a má mnoho užitečných možností pro manipulaci s obrázky. Zde je několik věcí, které pro vás může Jp2a udělat!
- číst obrázky ze standardního vstupu,
- nastavit režim pozadí jako světlý nebo tmavý,
- nastavit ohraničení,
- nastavit výšku a šířku výstupu,
- nastavit vlastní rozměr výstupních obrázků,
- převrátit výstupní obrázek svisle nebo vodorovně,
- při vytváření výstupního ASCII obrázku použijte specifické znaky,
- převrátit obrázky,
- stahujte obrázky z webu a převádějte je,
- A mnoho.
Nainstalujte Jp2a v Linuxu
Jp2a je zabalen pro mnoho distribucí Linuxu a je dostupný ve výchozích úložištích.
Chcete-li nainstalovat Jp2a na Arch Linux a jeho varianty, jako je Manjaro Linux, spusťte:
$ sudo pacman -S jp2a
Na Debianu, Ubuntu, Linux mint:
$ sudo apt install jp2a
Na Fedoře:
$ sudo dnf install jp2a
Na CentOS / RHEL:
$ sudo yum install epel-release
$ sudo yum install jp2a
Na openSUSE:
$ sudo zypper install jp2a
Převod obrázků do formátu ASCII v systému Linux
Chcete-li převést daný obrázek JPG/JPEG do znakového formátu ASCII, jednoduše spusťte:
jp2a <path-to-image>
Příklad:
$ jp2a arch.jpg
Ukázkový výstup:
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

Jednoduché, že?
Můžete určit více obrázků a převést je všechny najednou.
$ jp2a img1.jpg img2.jpg
Tento příkaz převede dané obrázky do ASCII a zobrazí je jeden po druhém.
Jak jsem již řekl, Jp2a má mnoho možností a příznaků pro manipulaci se vstupními obrázky. Podívejme se na použití některých možností s příklady.
Čtení obrázků ze standardního vstupu
Chcete-li číst obrázky ze standardního vstupu a tisknout znaky ASCII na standardním výstupu, použijte pipe příkaz jako níže.
$ cat arch.jpg | jp2a -
Pamatujte na symbol pomlčky (-) na konci.
Zapsat výstup do souboru
Místo zobrazení obrázku ASCII ve standardním výstupu jej můžete zapsat do souboru, jak je uvedeno níže.
$ jp2a arch.jpg --output=arch_ascii
Tento příkaz připojí výstup ASCII do textového souboru s názvem arch_ascii . Obsah souboru můžete zobrazit pomocí příkazu "cat":
$ cat arch_ascii

Tisk obrázků s konkrétní výškou/šířkou
Obrázek můžete převést do formátu ASCII a vytisknout jej s konkrétní výškou nebo šířkou dle vašeho výběru.
Chcete-li tisknout pomocí určité výšky, například 30 řádků, jednoduše proveďte:
$ jp2a --height=30 arch.jpg
Šířka bude automaticky vypočítána z poměru stran obrázku.
Podobně pro určení šířky spusťte:
$ jp2a --weight=30 arch.jpg
Můžete také obě možnosti zkombinovat a obrázek vytisknout.
$ jp2a --height=20 --width=40 arch.jpg
Tisk obrázků ve formátu ASCII v X sloupcích a Y řádcích
Následující příkaz převede daný soubor obrázku do ASCII a vytiskne výstup v 50 sloupcích a 30 řádcích.
$ jp2a --size=50x30 arch.jpg
Ukázkový výstup:

Nastavit ohraničení na znaky ASCII
Pokud chcete nastavit ohraničení kolem výstupu ASCII, použijte border možnost jako níže:
$ jp2a --border --size=50x30 arch.jpg
Ukázkový výstup:

Tisk obrázků na světlém/tmavém pozadí
Jp2a má možnosti tisknout znaky ASCII na světlém a tmavém pozadí.
$ jp2a --background=light arch.jpg
$ jp2a --background=dark arch.jpg

Tisk obrázků ve formátu ASCII na tmavém pozadí
Pokud si prohlížíte obrázek s bílým pozadím, ale používáte displej se světlými znaky na tmavém pozadí, měli byste obrázek převrátit pomocí invertovat vlajka.
$ jp2a arch.jpg --invert
Ukázkový výstup:
. . . . . . . . . . . . . . . . . . .
:;
,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,
;:'. .';;
. .

Tisk obrázků pouze se specifickými znaky
Namísto tisku obrázku s výchozími znaky můžete použít některé vlastní znaky podle svého výběru.
$ jp2a --size=50x30 --chars=" [email protected]@" arch.jpg
Stahujte obrázky přímo z internetu
Nejen místní obrázky, je možné přímo stáhnout obrázky z internetu a převést je do ASCII.
Chcete-li stáhnout obrázky přímo z internetu a vytisknout je ve formátu ASCII, spusťte:
$ jp2a --size=50x30 https://upload.wikimedia.org/wikipedia/commons/d/dd/Linux_logo.jpg

Případně použijte curl nebo wget programy ke stažení obrázků a jp2a načte obrázek ze standardního vstupu, jak je uvedeno níže.
$ curl -s https://upload.wikimedia.org/wikipedia/commons/d/dd/Linux_logo.jpg | jp2a -
Převést obrázky jiné než JPG/JPEG
Co když máte jiný typ obrázku než JPG/JPEG? V takovém případě můžete použít ImageMagick's Convert nástroj jako níže. ImageMagick je k dispozici ve výchozích úložištích mnoha distribucí Linuxu.
Na Arch Linuxu a jeho variantách, jako je Manjaro Linux:
$ sudo pacman -S imagemagick
V systémech Debian, Ubuntu, Linux Mint:
$ sudo apt install imagemagick
Po instalaci ImageMagick spusťte následující příkaz pro převod daného obrázku ve formátu PNG na formát Jpeg/Jpg a poté jej převeďte do formátu ASCII:
$ convert arch.png jpg:- | jp2a -
Všimněte si prosím symbolu pomlčky (-) na konci.

Podobně můžete jednoduše převést jakýkoli formát obrázku na JPEG/JPG a poté jej znovu převést do formátu ASCII.
Vytvářejte striktní výstup HTML
Jp2a má možnost vytvářet striktní výstup XHTML 1.0.
$ jp2a --size=50x30 --html arch.jpg --output=arch.html
Ukázkový výstup:
<?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>