[英]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.