我正在尝试使用C和GTK截取整个屏幕的屏幕截图。由于速度原因,我不想调用外部应用程序。我已经找到了为此的Python代码(Take a screenshot via a python script. [Linux]);我只需要弄清楚如何用C做到这一点。

最佳答案

看完GNOME屏幕截图代码和Python示例之后,我想到了:

GdkPixbuf * get_screenshot(){
    GdkPixbuf *screenshot;
    GdkWindow *root_window;
    gint x_orig, y_orig;
    gint width, height;
    root_window = gdk_get_default_root_window ();
    gdk_drawable_get_size (root_window, &width, &height);
    gdk_window_get_origin (root_window, &x_orig, &y_orig);

    screenshot = gdk_pixbuf_get_from_drawable (NULL, root_window, NULL,
                                           x_orig, y_orig, 0, 0, width, height);
    return screenshot;
}

这似乎工作完美。谢谢!

关于c - 使用C\GTK截屏,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3124229/

10-11 21:14