Warning
gdk_drawable_get_image has been deprecated since version 2.22 and should not be used in newly-written code. Use drawable as the source and draw to a Cairo image
surface if you want to download contents to the client.
A GdkImage stores client-side image data (pixels). In contrast,
GdkPixmap and GdkWindow are server-side
objects. gdk_drawable_get_image() obtains the pixels from a
server-side drawable as a client-side GdkImage. The format of a
GdkImage depends on the GdkVisual of the current display, which
makes manipulating GdkImage extremely difficult; therefore, in
most cases you should use gdk_pixbuf_get_from_drawable() instead of
this lower-level function. A GdkPixbuf contains image data in a
canonicalized RGB format, rather than a display-dependent format.
Of course, there's a convenience vs. speed tradeoff here, so you'll
want to think about what makes sense for your application.
x, y, width, and height define the region of drawable to
obtain as an image.
You would usually copy image data to the client side if you intend
to examine the values of individual pixels, for example to darken
an image or add a red tint. It would be prohibitively slow to
make a round-trip request to the windowing system for each pixel,
so instead you get all of them at once, modify them, then copy
them all back at once.
If the X server or other windowing system backend is on the local
machine, this function may use shared memory to avoid copying
the image data.
If the source drawable is a GdkWindow and partially offscreen
or obscured, then the obscured portions of the returned image
will contain undefined data.
Warning gdk_drawable_get_image has been deprecated since version 2.22 and should not be used in newly-written code. Use drawable as the source and draw to a Cairo image surface if you want to download contents to the client. A GdkImage stores client-side image data (pixels). In contrast, GdkPixmap and GdkWindow are server-side objects. gdk_drawable_get_image() obtains the pixels from a server-side drawable as a client-side GdkImage. The format of a GdkImage depends on the GdkVisual of the current display, which makes manipulating GdkImage extremely difficult; therefore, in most cases you should use gdk_pixbuf_get_from_drawable() instead of this lower-level function. A GdkPixbuf contains image data in a canonicalized RGB format, rather than a display-dependent format. Of course, there's a convenience vs. speed tradeoff here, so you'll want to think about what makes sense for your application. x, y, width, and height define the region of drawable to obtain as an image. You would usually copy image data to the client side if you intend to examine the values of individual pixels, for example to darken an image or add a red tint. It would be prohibitively slow to make a round-trip request to the windowing system for each pixel, so instead you get all of them at once, modify them, then copy them all back at once. If the X server or other windowing system backend is on the local machine, this function may use shared memory to avoid copying the image data. If the source drawable is a GdkWindow and partially offscreen or obscured, then the obscured portions of the returned image will contain undefined data.