[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Taking screenshots?



On Saturday 27 December 2003 15:51, Juhana Sadeharju wrote:
> How do I take screenshot of a window (and of its all widgets)?
>
> What if I have a tab widget and I want take a "screenshot"
> of an unvisible tab panel?

I use this code to generate a ".jpg" file from a screenshot.  Assuming that 
the widget pointer for your toplevel window is "main_window":

	GdkWindow *root_window;
	GdkPixbuf *screenshot;
	gint win_width, win_height;

	/* Get the pointer for the root window */
	root_window = gtk_widget_get_root_window(main_window);

	/* Get the root window's width and height */
	gdk_window_get_geometry(root_window,NULL,NULL,&win_width,&win_height,NULL);

	/* Take the screenshot */
	screenshot = gdk_pixbuf_get_from_drawable(NULL,root_window,
	        gdk_colormap_get_system(),0,0,0,0,win_width,win_height);

	/* "quality" = 70% gives a good image, but the file is only 20% as big */
	/* Save the file to "foo.jpg" */
	gdk_pixbuf_save(screenshot,"foo.jpg","jpeg",NULL,"quality","70",NULL);

	 /* Free it */
	g_object_unref(screenshot);

This captures everything currently visible on your root window.
I don't believe that it is possible to capture an image that is invisible.

Dave





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]