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>