将 STDOUT 传送至图像?

将 STDOUT 传送至图像?

最近,我想运行一个终端命令,git show <hash>并将输出保存为图像,最好是 PNG。

我对此进行了相当多的 Google 搜索,并发现了一些巧妙的技巧,尤其是使用导入命令,但没有任何东西可以可靠地捕获 STDOUT 并将其保存为图像。

所以,我想问问这里的智囊团。有人有经过测试和验证的 Linux 解决方案吗?

答案1

如何将文本转换为图像已经在这里得到解答:https://stackoverflow.com/questions/3826379/image-magick-converting-text-to-image-is-there-a-way-to-center-the-text-to-t 该答案提供了如何使用 ImageMagick 工具执行此操作的各种变体。

请注意:只有当您的命令输出为纯文本时,此操作才会可靠地工作。
如果有任何类型的奇特格式(如 ncurses 格式),结果可能会非常难以预测。

答案2

部分答案,列出一些可能性:

您可以使用许多程序将文本渲染为图像,例如:

  • convert来自 ImageMagick/GraphicsMagick
  • pbmtext来自 NetPBM,渲染为便携式位图
  • paps,使用 Pango 渲染为 Postscript
  • enscript,渲染至 Postscript

但将其他格式转换为 PNG 应该不成问题。

其中,仅enscript通过“特殊转义”支持颜色。这些与终端转义不同,因此您需要使用 awk/perl 等进行转换。

另一个选择是在 xterm 中呈现整个内容,然后截屏。

如您所见,所有这些都相当复杂,需要付出不小的努力才能使它们发挥作用。这并不奇怪,因为基本上你想复制终端的整个渲染部分。

只存储输出本身,并在想要查看时在终端中检索它可能更容易。

相关内容