【问题标题】:Pipe STDOUT to an image?将 STDOUT 管道传输到图像?
【发布时间】:2017-06-16 22:27:45
【问题描述】:

最近,我想运行一个终端命令,如“git show ”并将输出保存到图像,最好是PNG。

我用谷歌搜索了很多,发现了一些巧妙的技巧,特别是导入命令,但没有任何东西可以捕获 STDOUT 并将其保存为图像。

所以,我想我会在 SO 上询问智囊团。有人有针对 Linux 的经过测试和验证的解决方案吗?

【问题讨论】:

  • “另存为图像”是什么意思?该文件是否包含图像信息,或者您是否正在寻找将文本转换为文本图像的内容?
  • 如果您正在寻找自动执行此操作的工具,这不是编程问题。试试 unix.SE 或 SuperUser.com。
  • 我的意思是获取 git show a-hash 将生成的文本输出并将其保存为图像,忠实地再现它的所有血腥颜色和细节。
  • git show 产生文本输出,而不是图像。您需要一个将文本转换为图像的工具。
  • 就像我说的,请求工具的地方是 SuperUser.com。这不是一个编程问题。您可以编写一个使用 GD/Image 函数的 PHP 脚本。但在你真正有一些代码要显示之前,这个问题在这里不合适。

标签: linux image terminal


【解决方案1】:

不确定 git 输出什么,但您应该能够对其进行调整以制作该文本的 PNG 图像:

echo "git result" | convert -fill red -background yellow label:@- a.png


实现相同结果的另一种方法如下:

convert -fill red -background yellow label:"$(git show hash)" a.png

convert(或从 v7 开始的magick)是安装在大多数 Linux 上的 ImageMagick 套件的一部分,可用于 macOS 和 Windows。

【讨论】:

  • 这会生成一个 18x15 像素的图像,黄色背景包含文本“@-”和文件名 a.png,不确定“git show ”数据的去向。
  • 请尝试应用此问题的答案stackoverflow.com/q/37957972/2836621
【解决方案2】:

如果您只想将git show 的输出保存到文件中,那么就这样做吧。

git show <hash>:path/to/image.png > /some/other/path/image.png

如果您想查看图像,ImageMagick 的display 命令允许从 STDIN 进行管道传输。所以你可以这样做

git show <hash>:path/to/image.png | display

【讨论】:

  • 我试过了,它会抛出一个致命错误: 中不存在路径'image.png' 我正在运行 Ubuntu 14.04,也许这适用于另一个发行版?
  • @user3123081 您应该提供 git 存储库中图像文件的实际路径。
  • 我认为贾斯汀不明白git show &lt;hash&gt; 做了什么。它显示有关提交的信息,而不是文件的内容。
  • path/to/image.png 必须是&lt;hash&gt; 指定的提交中的文件。 @Barmar,不,我理解得很好。 &lt;hash&gt;:&lt;file&gt;syntax 将&lt;file&gt; 的内容输出到STDOUT。
猜你喜欢
  • 2019-05-17
  • 2012-02-26
  • 1970-01-01
  • 2011-08-15
  • 1970-01-01
  • 2016-03-14
  • 2018-10-03
  • 1970-01-01
  • 2019-03-21
相关资源
最近更新 更多