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
6
A
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ó 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
Hm, bạn nói đúng. Giữa đó và mã gnome-screenshot, tôi đã tìm ra nó. Cảm ơn bạn. – snostorm
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