Existe-t-il un programme en ligne de commande (pour Linux) qui peut convertir une image en art ascii puis enregistrer cette sortie sous forme d'image, par exemple jpg ou png?
Pour illustrer ce dont j'ai besoin, je veux convertir l'image ci-dessous en art ascii
La sortie que je désire d'un programme devrait être similaire à celle-ci, qui a été créée en prenant une capture d'écran de la sortie d'un convertisseur image-ascii (la sortie était du texte pur)
Je suis conscient que GIMP a la possibilité d'enregistrer une image en tant qu'art ascii et aview peut également convertir une image en ascii. Cependant, le premier ne peut pas être fait via la ligne de commande et le second vous permet uniquement de visualiser la sortie, pas de l'enregistrer (je ne veux pas recourir à une capture d'écran de la sortie).
Je suis également conscient que libcaca peut enregistrer sa sortie dans une image, mais il ne produit que des ascii colorés, comme ci-dessous.
Réalisé en convertissant l'image source en niveaux de gris puis avec la commande suivante:
img2txt -W 70 -f tga input.jpg > output.tga
La raison de vouloir un programme en ligne de commande est de traiter par lots un dossier plein d'images.
convert
(ImageMagick). Si vous définissez la sortie -f d'img2txt sur ansi (plutôt que sur ansi coloré), vous pouvez diriger le résultat à convertir (ou un autre logiciel approprié)Réponses:
Vous pouvez utiliser ce code python que j'ai créé pour créer de l'art ascii à partir d'images fixes et de vidéos:
https://gist.github.com/lindylex/9374326
Exemple de sortie
Original
Sortie d'art ASCII (
python ascii_movie_image_ver_1.py cat.jpg 4 10
)la source
Si vous semblez utiliser Linux, vous pouvez assembler facilement les applications pour obtenir le résultat souhaité. Cela peut ensuite également être incorporé dans votre script de traitement par lots.
L'exemple ci-dessous utilise jp2a , un puissant convertisseur JPG vers ASCII-art avec de nombreuses options pour obtenir les résultats souhaités (consultez la page de manuel). Nous traitons ensuite le fichier texte ASCII résultant en une image à l'aide de la conversion à partir de la suite ImageMagick . Encore une fois, il existe de nombreuses options pour affiner le résultat. Les deux applications sont susceptibles d'être disponibles à partir des référentiels de votre distribution.
Un exemple de script ci-dessous produira une image d'art ASCII (le format en fonction de l'extension que nous donnons,
.jpg
est pour JPEG) à partir d'une image JPEG d'entrée. La source est rendue à une largeur de 160 caractères à 6 pt. Cela s'adaptera alors simplement à la taille de page par défaut telle que prédéfinie à partir de la conversion.la source
835px
? Je veux convertir l'art ascii en une1920x1080
image de fond d'écran mais quand je passe l'-resize 1920x1080
option, la largeur reste835px
.brew install jp2a
.jp2a --html --width=160 --chars="\'\"love" input.jpg --output=output.htm
. Vous pouvez spécifier votre jeu de caractères préféré pour le rendu (vous devrez échapper les métacaractères si vous voulez les utiliser). Pour jp2a, voir aussi AUR pour Arch .Dans Node.js Knockout 2012, il y avait une soumission gagnante qui prenait un flux vidéo webcam et crachait un "flux ascii":
Asciigram
Ce n'est pas exactement la ligne de commande, mais vous pouvez peut-être l'adapter à vos besoins. La bibliothèque qu'ils utilisent pour convertir l'image en ascii s'appelle Jscii .
la source
J'utilise jp2a pour l'art ascii. Simple à utiliser à partir de la ligne de commande:
Et peut tester les résultats en ligne sur asciiconvert.com .
la source
Vous semblez utiliser Linux et connaissez déjà libcaca. Il y a une autre lib qui fait exactement ce que vous dites (Image à Ascii en ligne de commande): Aalib .
Il existe de nombreux programmes pour ce faire. Celui-ci fonctionne à la fois sur Linux et Windows . N'utilise pas de bibliothèques externes, le code source complet disponible, etc ...
la source
Tant que je suis conscient que le programme n'a pas d'interface de ligne de commande, mais convertit les images en texte, puis en images. La source est disponible, vous pouvez donc l'utiliser pour écrire votre propre outil.
Vous avez raison, aalib ne produit pas d'images, mais produit du texte. Ainsi que de nombreux autres programmes qui fonctionnent en ligne de commande.
Si vous utilisez Linux, il existe un programme en ligne de commande appelé asciitopgm qui convertira le texte ascii en bitmap. Cela fait partie du package netpbm.
Vous pouvez donc utiliser une combinaison d'outils:
Je pense que vous pouvez faire ce que vous vouliez de cette façon.
la source
Oui, il existe un outil appelé
jp2a
qui convertit essentiellement une image jpg en art ascii.Par exemple:
Original Skull.jpg
Sortie Ascii Art
Assurez-vous d'utiliser l'image jpg. Si votre image est dans un autre format, vous pouvez la modifier en
la source