GNU/Linux >> Tutoriels Linux >  >> Linux

Comment convertir des images au format ASCII sous Linux

Ce guide enseigne comment convertir des images au format ASCII sous Linux. Pour les besoins de cette tâche, nous utiliserons Jp2a . Jp2a est un outil de ligne de commande qui vous aide à convertir la ou les images données au format de caractères ascii. Vous pouvez spécifier un mélange de fichiers image et d'URL et l'outil Jp2a les convertira tous instantanément en caractères ascii. Jp2a dispose de nombreuses options utiles pour manipuler les images. Voici quelques choses que Jp2a peut faire pour vous !

  • lire des images à partir de l'entrée standard,
  • définir le mode d'arrière-plan sur clair ou foncé,
  • définir la bordure,
  • définir la hauteur et la largeur de sortie,
  • définir une dimension personnalisée pour les images de sortie,
  • retourner l'image de sortie verticalement ou horizontalement,
  • utiliser un caractère spécifique lors de la production de l'image ASCII de sortie,
  • inverser les images,
  • téléchargez des images depuis le Web et convertissez-les,
  • Et beaucoup.

Installer Jp2a sous Linux

Jp2a est packagé pour de nombreuses distributions Linux et est disponible dans les référentiels par défaut.

Pour installer Jp2a sur Arch Linux et ses variantes comme Manjaro Linux, exécutez :

$ sudo pacman -S jp2a

Sur Debian, Ubuntu, Linux mint :

$ sudo apt install jp2a

Sur Fedora :

$ sudo dnf install jp2a

Sur CentOS / RHEL :

$ sudo yum install epel-release
$ sudo yum install jp2a

Sur openSUSE :

$ sudo zypper install jp2a

Convertir des images au format ASCII sous Linux

Pour convertir une image JPG/JPEG donnée au format de caractères ASCII, exécutez simplement :

jp2a <path-to-image>

Exemple :

$ jp2a arch.jpg

Exemple de résultat :

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

Simple, n'est-ce pas ?

Vous pouvez spécifier plusieurs images et toutes les convertir en une seule fois.

$ jp2a img1.jpg img2.jpg

Cette commande convertit les images données en ASCII et les affichera l'une après l'autre.

Comme je l'ai déjà dit, Jp2a a de nombreuses options et drapeaux pour manipuler les images d'entrée. Voyons l'utilisation de certaines options avec des exemples.

Lire les images à partir de l'entrée standard

Pour lire des images à partir de l'entrée standard et imprimer les caractères ASCII dans la sortie standard, utilisez pipe commande comme ci-dessous.

$ cat arch.jpg | jp2a -

Attention au trait d'union (-) à la fin.

Écrire la sortie dans un fichier

Au lieu d'afficher l'image ASCII dans la sortie standard, vous pouvez l'écrire dans un fichier comme indiqué ci-dessous.

$ jp2a arch.jpg --output=arch_ascii

Cette commande ajoutera la sortie ASCII dans un fichier texte appelé arch_ascii . Vous pouvez afficher le contenu du fichier à l'aide de la commande "cat":

$ cat arch_ascii

Imprimer des images avec une hauteur/largeur spécifique

Vous pouvez convertir l'image au format ASCII et l'imprimer avec une hauteur ou une largeur spécifique de votre choix.

Pour imprimer en utilisant une hauteur spécifique, par exemple 30 lignes, faites simplement :

$ jp2a --height=30 arch.jpg

La largeur sera automatiquement calculée à partir du rapport d'aspect de l'image.

De même, pour spécifier la largeur, exécutez :

$ jp2a --weight=30 arch.jpg

Vous pouvez également combiner les deux options et imprimer l'image.

$ jp2a --height=20 --width=40 arch.jpg

Imprimer des images au format ASCII dans X colonnes et Y lignes

La commande suivante convertit le fichier image donné en ASCII et imprime la sortie en 50 colonnes et 30 lignes.

$ jp2a --size=50x30 arch.jpg

Exemple de résultat :

Définir la bordure en caractères ASCII

Si vous souhaitez définir une bordure autour de la sortie ASCII, utilisez border comme ci-dessous :

$ jp2a --border --size=50x30 arch.jpg

Exemple de résultat :

Imprimer des images sur fond clair/foncé

Jp2a a des options pour imprimer les caractères ASCII dans des arrière-plans clairs et foncés.

$ jp2a --background=light arch.jpg
$ jp2a --background=dark arch.jpg

Imprimer des images au format ASCII sur fond sombre

Si vous visualisez une image avec un fond blanc, mais que vous utilisez un affichage avec des caractères clairs sur un fond sombre, vous devez inverser l'image à l'aide de la touche inverser drapeau.

$ jp2a arch.jpg --invert

Exemple de résultat :

  .  .  .  .  .  .  .  .               .  .  .  .  .  .  .  .  .            .  .  
                                        :;                                        
                                       ,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,      
     ;:'.                                                                .';;     
    .                                                                        .

Imprimer des images avec des caractères spécifiques uniquement

Au lieu d'imprimer l'image dans les caractères par défaut, vous pouvez utiliser des caractères personnalisés de votre choix.

$ jp2a --size=50x30 --chars=" [email protected]@" arch.jpg

Télécharger des images directement depuis Internet

Pas seulement des images locales, il est possible de télécharger directement les images depuis Internet et de les convertir en ASCII.

Pour télécharger des images directement depuis Internet et les imprimer au format ASCII, exécutez :

$ jp2a --size=50x30 https://upload.wikimedia.org/wikipedia/commons/d/dd/Linux_logo.jpg

Vous pouvez également utiliser curl ou wget programmes pour télécharger les images et jp2a lira l'image à partir de l'entrée standard comme ci-dessous.

$ curl -s https://upload.wikimedia.org/wikipedia/commons/d/dd/Linux_logo.jpg | jp2a -

Convertir des images autres que JPG/JPEG

Que se passe-t-il si vous avez un type d'image différent autre que JPG/JPEG ? Dans ce cas, vous pouvez utiliser Convertir d'ImageMagick outil comme ci-dessous. ImageMagick est disponible dans les dépôts par défaut de nombreuses distributions Linux.

Sur Arch Linux et ses variantes comme Manjaro Linux :

$ sudo pacman -S imagemagick

Sur Debian, Ubuntu, Linux Mint :

$ sudo apt install imagemagick

Après avoir installé ImageMagick, exécutez la commande suivante pour convertir l'image au format PNG donnée au format Jpeg/Jpg, puis convertissez-la au format ASCII :

$ convert arch.png jpg:- | jp2a -

Veuillez noter le trait d'union (-) à la fin.

De même, vous pouvez simplement convertir n'importe quel format d'image en JPEG/JPG, puis le reconvertir au format ASCII.

Produire une sortie HTML stricte

Jp2a a une option pour produire une sortie XHTML 1.0 stricte.

$ jp2a --size=50x30 --html arch.jpg --output=arch.html

Exemple de résultat :

<?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>

Cela peut être utile lorsque vous souhaitez afficher les caractères ASCII d'une image dans un navigateur Web.

Quelques options supplémentaires sont disponibles, telles que retourner les images dans les directions X et Y, définir le poids de conversion RVB en niveaux de gris, utiliser les couleurs ANSI dans la sortie, utiliser la hauteur/largeur d'affichage du terminal, etc. Consultez la section d'aide ou les pages de manuel pour apprendre à utilisez-les.

Pour obtenir de l'aide, exécutez :

$ jp2a --help
$ man jp2a

Suggestion de lecture :


Linux
  1. Comment convertir des packages DEB en packages Arch Linux

  2. Comment gérer les registres de conteneurs Linux

  3. Comment installer ImageMagick sur Amazon Linux

  4. Comment convertir les caractères hexadécimaux en caractères ASCII dans le shell Linux ?

  5. Comment convertir une image disque Linux en un fichier sparse ?

Comment migrer des machines virtuelles Virtualbox vers des machines virtuelles KVM sous Linux

Comment convertir des fichiers PDF au format EPUB à l'aide de Calibre sous Linux

Comment convertir par lots des images PNG au format JPG sous Linux

Comment convertir xlsx au format CSV sous Linux

Comment convertir une page Web en PDF sous Linux

Comment convertir un PDF en images PNG et inversement sous Linux