簡體   English   中英

用C \\ GTK截取屏幕截圖

[英]Taking a screenshot with C\GTK

我正試圖用C和GTK截取整個屏幕的截圖。 出於速度原因,我不想打電話給外部應用程序。 我已經為此找到了Python代碼( 通過python腳本截取屏幕截圖。[Linux] ); 我只需要弄清楚如何在C中做到這一點。

在查看GNOME-Screenshot代碼和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;
}

這看起來很完美。 謝謝!

9年過去了,如上所述API被刪除。

據我所知,目前在Linux上做到這一點的最低要求是:

GdkWindow * root;
GdkPixbuf * screenshot;
gint x, y, width, height;

root = gdk_get_default_root_window ();
gdk_window_get_geometry (root, &x, &y, &width, &height);
screenshot = gdk_pixbuf_get_from_window (root, x, y, width, height);
// gdk_pixbuf_save...

這是非常輕微的測試,可能會失敗。 進一步閱讀是在gnome-screenshooter repo中

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM