我可以访问根顶部窗口,它是一个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。
谢谢!