我需要编写一个Red Hat Linux命令行工具,该工具会启动一个窗口并将其外观以JPEG格式捕获到磁盘中。
通常,目标计算机没有图形卡,但是我们可以安装任何软件组件(例如X)。
问题或两个:
您可能为此建议哪些库或工具?
如果我要使用GTK +之类的工具来创建此工具,缺少视频卡会不会妨碍其执行?
我看到了scrot
,但它似乎不支持在没有用户交互的情况下捕获特定窗口。
最佳答案
听起来您需要将X.org服务器的virtual framebuffer"驱动程序与xwd,NetPBM和cjpeg 实用程序结合使用。
我不确定X服务器所需的特定配置,但是您可能必须确保所使用的服务器具有内置的虚拟帧缓冲驱动程序。虚拟帧缓冲驱动程序是一种显示驱动程序,就像您用来连接到NVidia或ATI视频卡的驱动程序一样,只是它的“输出”是一块包含像素的内存,而不是LCD屏幕。
xwd是标准的X工具之一,可以创建X Window Dump。可以在命令行上告诉xwd要转储哪个窗口。它输出一个时髦的“xwd”格式的流,以标准输出。
NetPBM实用程序是命令行工具的集合,这些工具可将一种图像格式转换为另一种图像格式。它包括将xwd转换为ppm的一种。 PPM是一种非常基本的非压缩格式,是大多数NetPBM工具可以理解的中间格式。
cjpeg是标准JPEG工具集合的一部分,如果您还具有NetPBM,则可能已安装。 cjpeg可以获取PPM字节流,并发出JPEG字节流。
通过Unix脚本和管道的魔力,您可以将这些实用程序串在一起,用窗口启动应用程序,调用xwd,xwdtoppm和cjpeg将镜像转储到文件中。