将终端输出重定向到图像文件

Fer*_*nez 10 command-line terminal pipe aix image-manipulation

我需要以编程方式运行一些 unix 命令并在图像文件中获取输出,格式可以是pngjpeg( jpg)。

这些命令在 AIX (IBM *nix) 机器上运行。我没有安装新软件包的权限,但是我认为有一种方法可以使用管道和使用操作系统中的默认软件包进行重定向来做到这一点。

不幸的是,我找不到一种方法来做到这一点。

Mar*_*rco 6

对于输出很少且行很短的命令,您可以使用 a2ps、ghostscript 和 imagemagick 的组合轻松完成:

这里以命令的输出ls为例。

ls | 
a2ps -=book -B -q --medium=A4dj --borders=no -o out1.ps &&
gs \
  -sDEVICE=png256           \
  -dNOPAUSE -dBATCH -dSAFER \
  -dTextAlphaBits=4 -q      \
  -r300x300                 \
  -sOutputFile=out2.png out1.ps
convert -trim out2.png result.png
Run Code Online (Sandbox Code Playgroud)

a2ps创建文本的矢量图像。ghostscript 将其栅格化为 PNG 图形(不要使用 JPEG,这是错误的图形格式,它仅适用于逼真的图像)。最后使用 imagemagick 去除周围的空白区域。阅读手册页并根据需要调整参数。

如果未安装程序,您可以以没有管理员权限--prefix=/home/me/.local的用户身份编译和安装它们。

编辑:正如评论中提到的,一个不依赖于a2psghostscript的解决方案如下。

convert label:"$(ls)" result.png
Run Code Online (Sandbox Code Playgroud)