Re: Question in using gdk_pixbuf_get_from_drawable()



Yes, I am really accessing a GDK window.

  pb = gdk_pixbuf_get_from_drawable(NULL,
                                        GDK_DRAWABLE(window),


Any other idea?

Thanks.

On Sun, Mar 23, 2008 at 11:34 AM, Luis Menina <liberforce freeside fr> wrote:
Are you really sure you're accessing the GdkWindow and not the GtkWindow ?

 GtkWindow *toplevel = gtk_window_new(GTK_WINDOW_TOPLEVEL);

 [add some graphical stuff in that GtkWindow]

 /* and then, later on... */
 GdkWindow *window = toplevel->window;


 if (window != NULL)
 {
     int x, y, width, height, depth;
     GdkPixbuf *pb;


     gdk_window_get_geometry (window, &x, &y, &width, &height, &depth);

     pb = gdk_pixbuf_get_from_drawable(NULL,
                                       GDK_DRAWABLE (window),
                                       NULL, 0, 0, 0, 0, width, height);

     gdk_pixbuf_save(pb, filename, "png", NULL,
                     "compression", "9",
                     NULL);
 }

 ying lcs a écrit :


Luis,
 >
 > The 'window' object is from:
 >
 >  gtk_window_new(GTK_WINDOW_TOPLEVEL)
 >
 > I do see it works something, while other times, I see the screenshot
 > get out of place (as shown in the image I attached).
 >
 > I suspect my window is obscured during the capture.
 >
 > So how can I programmatic make sure my window is not obscured before
 > the catpure?
 >
 > I have tried adding:
 >
 >  gdk_window_raise(window);
 >  gdk_flush();
 >
 >
 > But it does not always help.
 >
 > Thank you for any more pointers.
 >
 >
 >
 >
 > On Thu, Mar 20, 2008 at 7:37 PM, Luis Menina <liberforce freeside fr> wrote:
 >> Hi,
 >>
 >>  where does your "window" object come from ? Could you please give us the
 >>  code where you initilized it ? I've tried to adapt your code in a simple
 >>  example, and it just works... I get a screenshot of what is in the
 >>  window, without the window decoration.
 >>
 >>  Cheers,
 >>
 >>  Luis
 >>
 >>  ying lcs a écrit :
 >>
 >>
 >>> Hi,
 >>  >
 >>  > I have a question of using gdk_pixbuf_get_from_drawable(). I have the
 >>  > following code which save the gdk window to a png file.
 >>  > But something I get something which is totally not what is displayed
 >>  > on the window. Can you please tell me what am I missing?
 >>  >
 >>  > GdkWindow *window ;
 >>  >
 >>  > if (window != NULL) {
 >>  >
 >>  >       int x, y, width, height, depth;
 >>  >
 >>  >       gdk_window_get_geometry( window, &x, &y, &width, &height, &depth );
 >>  >
 >>  >       printf (" width=%d, height=%d\n", width, height);
 >>  >
 >>  >       /* copy the pixmap from the treeview and from the title */
 >>  >       pb = gdk_pixbuf_get_from_drawable(NULL,
 >>  >                                       GDK_DRAWABLE(window),
 >>  >                                       NULL, 0, 0, 0, 0, width, height);
 >>  >
 >>  >
 >>  >       /* save the pixbuf to a png file */
 >>  >       gdk_pixbuf_save(pb, filename, "png", NULL,
 >>  >                     "compression", "9",
 >>  >                     NULL);
 >>  >     }
 >>  >
 >>  > Thank you.
 >>  >
 >>  >
 >>  > ------------------------------------------------------------------------
 >>  >
 >>  > _______________________________________________
 >>  > gtk-app-devel-list mailing list
 >>  > gtk-app-devel-list gnome org
 >>  > http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
 >>
 >




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