gdkPixbufScaleSimple(object, dest.width, dest.height, interp.type)
gdkPixbufScale(object, dest, dest.x, dest.y, dest.width, dest.height, offset.x, offset.y, scale.x, scale.y, interp.type)
gdkPixbufCompositeColorSimple(object, dest.width, dest.height, interp.type, overall.alpha, check.size, color1, color2)
gdkPixbufComposite(object, dest, dest.x, dest.y, dest.width, dest.height, offset.x, offset.y, scale.x, scale.y, interp.type, overall.alpha)
gdkPixbufCompositeColor(object, dest, dest.x, dest.y, dest.width, dest.height, offset.x, offset.y, scale.x, scale.y, interp.type, overall.alpha, check.x, check.y, check.size, color1, color2)
gdkPixbufRotateSimple(object, angle)
gdkPixbufFlip(object, horizontal)
gdkPixbufScale
,
gdkPixbufComposite
, and gdkPixbufCompositeColor
) are
rather complex to use and have many arguments, two simple
convenience functions are provided, gdkPixbufScaleSimple
and
gdkPixbufCompositeColorSimple
which create a new pixbuf of a
given size, scale an original image to fit, and then return the
new pixbuf.
The following example demonstrates handling an expose event by
rendering the appropriate area of a source image (which is scaled
to fit the widget) onto the widget's window. The source image is
rendered against a checkerboard, which provides a visual
representation of the alpha channel if the image has one. If the
image doesn't have an alpha channel, calling
gdkPixbufCompositeColor
function has exactly the same effect
as calling gdkPixbufScale
.
expose_cb <- function(widget, event, data)
{
dest <- gdkPixbuf(color = "rgb", has.alpha = FALSE, bits = 8,
w = event[["area"]]$width, h = event[["area"]]$height)area <- event[["area"]] pixbuf$compositeColor(dest, 0, 0, area$width, area$height, -area$x, -area$y, widget[["allocation"]]$width / pixbuf$getWidth(), widget[["allocation"]]$height / pixbuf$getHeight(), "bilinear", 255, area$x, area$y, 16, 0xaaaaaa, 0x555555)
dest$renderToDrawable(widget[["window"]], widget[["style"]][["fgGc"]][[GtkStateType["normal"]+1]], 0, 0, area$x, area$y, area$width, area$height, "normal", area$x, area$y)
return(TRUE) }