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>