2010-06-26 14 views
6

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

+1

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

+0

Hm, Sie haben Recht. Zwischen dem und dem Gnome-Screenshot-Code habe ich es herausgefunden. Vielen Dank. – snostorm

+1

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

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

Verwandte Themen