是否有可以将图像转换为 ASCII 艺术图像的命令行程序?

平面设计 图片 软件推荐 批量处理 图像处理 ASCII
2022-01-09 07:45:10

是否有一个命令行程序(适用于 Linux)可以将图像转换为 ascii 艺术,然后将该输出保存为图像,例如 jpg 或 png?

为了说明我需要什么,我想将下面的图像转换为 ascii 艺术 在此处输入图像描述

我希望从程序中得到的输出应该类似于这个,它是通过对图像到 ascii 转换器的输出进行截图创建的(输出是纯文本)

在此处输入图像描述

我知道 GIMP 能够将图像保存为 ascii 艺术,aview也可以将图像转换为 ascii。但是,前者不能通过命令行完成,而后者只能让您查看输出,而不是保存它(我不想诉诸于对输出进行截图)。

我也知道libcaca可以将其输出保存到图像中,但它只输出彩色 ascii,如下所示。

在此处输入图像描述

通过将源图像转换为灰度然后使用以下命令来制作:

img2txt -W 70 -f tga input.jpg > output.tga

想要一个命令行程序的原因是批处理一个充满图像的文件夹。

4个回答

如果您似乎在运行 Linux,您可以轻松地将应用程序拼接在一起以获得所需的结果。然后,这也可以合并到您的批处理脚本中。

下面的示例使用jp2a,这是一个强大的 JPG 到 ASCII-art 转换器,具有许多选项来实现所需的结果(请参阅手册页)。然后,我们使用ImageMagick 套件中的转换将生成的 ASCII 文本文件进一步处理为图像同样,有许多选项可以微调结果。这两个应用程序都可能在您的发行版存储库中可用。

.jpg下面的示例脚本将从输入的 JPEG 图像生成 ASCII 艺术图像(格式取决于我们提供的扩展名,适用于 JPEG)。源在 6 pt 处呈现为 160 个字符宽度。然后,这将恰好适合从 convert 预定义的默认页面大小。

#! /bin/bash
#Usage ./j2asc infile.jpg outfile.jpg

echo "converting $1 to $2"
jp2a --width=160 -i  $1 --output=tmp.txt
convert -font Courier -pointsize 6 tmp.txt $2

您可以使用我创建的这个 python 代码从静止图像和视频创建 ascii 艺术:

https://gist.github.com/lindylex/9374326

示例输出

原版的 在此处输入图像描述

ASCII 艺术输出 ( python ascii_movie_image_ver_1.py cat.jpg 4 10) 在此处输入图像描述

您似乎正在使用 Linux,并且已经知道 libcaca。还有另一个库完全按照您所说的进行(命令行上的图像到 Ascii):Aalib

有很多程序可以做到这一点。这个适用于 Linux 和 windows不使用外部库,提供完整的源代码等...

在 Node.js Knockout 2012 中,有一个获奖提交,它采用了一个网络摄像头视频源并吐出了一个“ascii 源”:

Asciigram

Asciigram 页面

Asciigram 是一种“生产力工具”,可让您使用网络摄像头创建 ASCII 视频和图像。您还可以创建 ASCII 图像,将图像拖到页面上。[关联]

它不完全是命令行,但也许您可以根据需要对其进行改造。他们用来将图像转换为 ascii 的库称为Jscii