GTK / GDK算法可以获取所有监视器的完整屏幕截图

时间:2015-05-09 22:07:21

标签: linux gtk screenshot gdk

我对整个GTK游戏都很陌生,想要创建一个算法来拍摄所有显示器的屏幕截图。

我正在思考这些问题:

  1. gdk_display_manager_list_displays
  2. 每个显示器可以有多个屏幕(屏幕意味着显示器?)所以使用gdk_display_get_n_screens1
  3. 获取每个显示器的显示器
  4. 2
  5. 获取所有屏幕的root gtk窗口
  6. 为来自3 gdk_pixbuf_new的每个屏幕的每个根gtk窗口创建新的Pixbuf
  7. 对于来自4的每个相应展示的gdk_pixbuf_get_from_drawable的每个相应屏幕,
  8. 为来自3的每个相应根窗口的2填充1的每个pixbuf({1}}可能需要gdk_drawable_get_sizegdk_window_get_origin每个args到pixbuf)
  9. 每个pixbuf
  10. gdk_pixbuf_get_pixels
  11. 这是一个可行的解决方案吗?

1 个答案:

答案 0 :(得分:1)

如果您确定cRootWin不是NULL且cWidthcHeight大于0,那么您应该检查一些其他问题by the doc

一个疯狂的猜测是你的程序没有足够的内存来存储像素图(通常为6 Mb)。我会尝试分配12 Mb,看看是否是这种情况。