最近,我想运行一个终端命令,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/GraphicsMagickpbmtext
来自 NetPBM,渲染为便携式位图paps
,使用 Pango 渲染为 Postscriptenscript
,渲染至 Postscript
但将其他格式转换为 PNG 应该不成问题。
其中,仅enscript
通过“特殊转义”支持颜色。这些与终端转义不同,因此您需要使用 awk/perl 等进行转换。
另一个选择是在 xterm 中呈现整个内容,然后截屏。
如您所见,所有这些都相当复杂,需要付出不小的努力才能使它们发挥作用。这并不奇怪,因为基本上你想复制终端的整个渲染部分。
只存储输出本身,并在想要查看时在终端中检索它可能更容易。