2010-06-26 46 views
6

Tôi đang cố chụp ảnh màn hình toàn bộ màn hình bằng C và GTK. Tôi không muốn thực hiện cuộc gọi đến ứng dụng bên ngoài vì lý do tốc độ. Tôi đã tìm thấy mã Python cho điều này (Take a screenshot via a python script. [Linux]); Tôi chỉ cần tìm ra cách để làm điều đó trong C.Chụp ảnh màn hình với C GTK

+1

Có vẻ như mã Python mà bạn đã liên kết đến là một chiếc cũi tốt trong các cuộc gọi API GTK, bạn sẽ cần phải sử dụng trong C. – crazyscot

+0

Hm, bạn nói đúng. Giữa đó và mã gnome-screenshot, tôi đã tìm ra nó. Cảm ơn bạn. – snostorm

+1

có thể trùng lặp của [Chuyển đổi tập lệnh python GTK thành C] (http://stackoverflow.com/questions/3045850/convert-a-gtk-python-script-to-c) – u0b34a0f6ae

Trả lời

9

Sau khi xem xét các mã GNOME-Ảnh chụp màn hình và một ví dụ Python, tôi đến với điều này:

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; 
} 

Mà dường như để làm việc một cách hoàn hảo. Cảm ơn!

+0

Thật không may, điều này hiện đã lỗi thời và API bị xóa kể từ 3.10 – Lothar

Các vấn đề liên quan