获取Gtk小部件的屏幕截图并保存到文件

时间:2019-07-21 04:10:06

标签: c++ gtk2

我可以访问根顶部窗口,它是一个Gtk *小部件。使用此小部件,我想截取屏幕截图并将其保存到文件中。

我试图将其转换为Gdkpixbuf,Gdkpixmap,但似乎没有任何效果。我可以编译我的代码,但是在运行时却提示错误 GLib-GObject-WARNING **:从GtkDrawingArea' to GtkContainer'强制转换为无效 GLib-GObject-WARNING **:从GtkLabel' to GtkContainer'强制转换为无效 这是我的代码:

'''

GdkPixmap *pixmap = gtk_widget_get_snapshot(window, NULL);
int width = window->allocation.width;
int height = window->allocation.height;
cairo_surface_t* imageSurface = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, width, height);
cairo_t* context = cairo_create(imageSurface);
gdk_cairo_set_source_pixmap(context, pixmap, 0, 0);
cairo_paint(context);
g_object_unref(pixmap);
cairo_surface_write_to_png(imageSurface, "screenshot.png"); 

'''

我想最后将屏幕快照保存到png。

谢谢!

0 个答案:

没有答案