如何在没有X11或/ dev/fb0的Linux下拍摄屏幕截图?

jsa*_*aji 8 c++ linux embedded qt directfb

我正在研究基于Linux的嵌入式系统.它使用Qt进行窗口化,没有Xserver.我的目标是拍摄屏幕截图.

我尝试过使用FBgrab.它失败了,因为我没有,/dev/fb0因为内核中没有启用帧缓冲区.我们正在运行基于Qt的应用程序以在屏幕上显示UI(HDMI).我也在QT网站上尝试了使用QPixmap和抓取窗口的屏幕截图应用程序.这也是一个失败,因为我无法在系统中运行两个QAppliction,因为它会影响显示.

有没有其他方法来拍摄屏幕?

Pur*_*ien 1

您可以让您的应用程序根据某些事件或命令对其自身进行屏幕截图。您可以通过将小部件抓取到像素图,然后将该像素图保存在某处来完成此操作。例如:

QWidget *widget = QApplication::activeWindow();
QPixmap pixmap = QPixmap::grabWidget(widget);
pixmap.save(QString("/path/to/screenshot/screenshot.png"));
Run Code Online (Sandbox Code Playgroud)