如何截取基于文本的用户界面的屏幕截图?
Posted
技术标签:
【中文标题】如何截取基于文本的用户界面的屏幕截图?【英文标题】:How do I take a screenshot of a Text-Based User Interface? 【发布时间】:2021-09-06 09:22:34 【问题描述】:我有一个基于文本的用户界面 (TUI) 的程序。想想ncurses。一切都显示在终端中,并且使用了很多 ANSI 转义序列来显示颜色、滚动条、窗口等...
对于单元测试,我想拍摄 TUI 的“屏幕截图”并将它们与预期的屏幕截图进行比较。本质上,单元测试需要运行一个虚拟终端并将输出保存为 png 图像文件。
请记住,这些测试需要在 travis 或 circleci 等无头 CI 系统上运行。我不能简单地运行 gnome-terminal 并使用 gnome-screenshot 截屏。 CI 系统没有运行图形。
如何以编程方式截取“无头”系统上基于文本的用户界面的屏幕截图?
【问题讨论】:
使用“screen”命令,如下所述:superuser.com/questions/557300/… 【参考方案1】:也许您可以尝试使用帧缓冲区截屏,这是一个示例: https://github.com/GunnarMonell/fbgrab
【讨论】:
这看起来很有希望。在 LInux 上,/dev/fb 包含原始 RGB 字节的帧缓冲区。将其转换为图像是一种非常简单的算法。以上是关于如何截取基于文本的用户界面的屏幕截图?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 ionic/cordova/phonegap 中的布局截取屏幕截图?