如何将可滚动终端窗口 (RoxTerm) 保存为 png 图像?

如何将可滚动终端窗口 (RoxTerm) 保存为 png 图像?

我想将 Ruby 程序的彩色终端输出保存到 png 文件中,输出不适合屏幕高度,因此它是可滚动的。是否可以将整个或部分可滚动终端窗口区域(当然不仅是可见部分,还可以向上滚动一点)保存到 png 文件中?

答案1

您不必使用尺寸有限的真实屏幕。创建一个大小足以一次显示所有输出的虚拟屏幕,然后转储该屏幕或终端。例如:

$ Xvfb :1 -screen 0 100x4000x24 -noreset &
$ xterm -geometry 10x200 -display :1 -e \
   sh -c 'echo $WINDOWID >/tmp/id;ls -l /etc;sleep 99' &
$ DISPLAY=:1 convert x:$(cat /tmp/id) /tmp/out.png 
$ identify /tmp/out.png
  /tmp/out.png PNG 79x2604 ...

这将创建一个 100 x 4000 像素、200 行高的屏幕xterm。该WINDOWID变量由 导出xterm,并且可以提供给 ImageMagick 的convert程序以将图像复制到 png 文件。该identify命令显示全部xterm内容均被捕获,而在我只有 1080 像素的真实屏幕上则不会出现这种情况。

答案2

我一直在使用 asciienma.org(以前称为 ascii.io)为教程创建录制的会话,我需要在终端中嵌入/共享操作。录音可以保存并下载为 .cast 格式,然后您可以将其转换为 .gif 格式。

要将 .cast 文件转换为 .gif 我使用这个项目 -asciicast2gif。结果不言自明:

SS1

参考

相关内容