Ich versuche, einen Screenshot des gesamten Bildschirms mit C und GTK zu machen. Ich möchte aus Geschwindigkeitsgründen keinen Anruf bei einer externen Anwendung tätigen. Ich habe Python-Code dafür gefunden (Take a screenshot via a python script. [Linux]); Ich muss nur herausfinden, wie dasIch mache einen Screenshot mit C GTK
6
A
Antwort
9
Nach einem Blick auf den GNOME-Bildschirm Code und ein Python-Beispiel in C zu tun, kam ich mit auf den Punkt:
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;
}
, die perfekt zu funktionieren scheint. Vielen Dank!
+0
Leider ist dies jetzt total veraltet und APIs werden seit 3.10 entfernt – Lothar
Es sieht eher so aus, als ob der Python-Code, mit dem Sie verbunden sind, eine gute Krippe in die GTK API-Aufrufe ist, die Sie in C verwenden müssen. – crazyscot
Hm, Sie haben Recht. Zwischen dem und dem Gnome-Screenshot-Code habe ich es herausgefunden. Vielen Dank. – snostorm
mögliche Duplikate von [Konvertieren Sie ein GTK-Python-Skript in C] (http://StackOverflow.com/questions/3045850/convert-a-gtk-python-script-to-c) – u0b34a0f6ae