GNU/Linux >> Znalost Linux >  >> Linux

Jak převést obrázky do formátu ASCII v Linuxu

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>

To může být užitečné, když chcete zobrazit znaky ASCII obrázku ve webovém prohlížeči.

K dispozici je několik dalších možností, jako je převrácení obrázků ve směru X a Y, nastavení váhy převodu RGB na stupně šedi, použití barev ANSI na výstupu, použití výšky/šířky displeje terminálu atd. Podívejte se do sekce nápovědy nebo manuálových stránek, kde se dozvíte, jak použijte je.

Pro nápovědu spusťte:

$ jp2a --help
$ man jp2a

Doporučené čtení:


Linux
  1. Jak spravovat registry kontejnerů Linux

  2. Jak nainstalovat ImageMagick na Amazon Linux

  3. Jak převést hex na ASCII znaky v prostředí Linuxu?

  1. Jak převést balíčky DEB na balíčky Arch Linux

  2. Jak převést více obrázků do PDF v Ubuntu Linux

  3. Jak převést PDF do JPG pomocí příkazového řádku v Linuxu?

  1. Převeďte instalaci systému Windows na virtuální počítač v systému Linux

  2. Jak rozdělit a naformátovat disk v systému Linux

  3. Jak převedu obraz disku Linux na řídký soubor?