gdkDrawableGetImage: gdkDrawableGetImage
Description
A GdkImage
stores client-side image data (pixels). In contrast,
GdkPixmap
and GdkWindow
are server-side
objects. gdkDrawableGetImage
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 gdkPixbufGetFromDrawable
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.Usage
gdkDrawableGetImage(object, x, y, width, height)
Arguments
x
x coordinate on drawable
y
y coordinate on drawable
width
width of region to get
height
height or region to get
Details
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.