### Function

# Gdk pixbuf_get_from_surface

#### Declaration [src]

    GdkPixbuf*
    gdk_pixbuf_get_from_surface (
      cairo_surface_t* surface,
      int src_x,
      int src_y,
      int width,
      int height
    )

#### Description [src]

Transfers image data from a `cairo_surface_t` and converts it to a `GdkPixbuf`.

This allows you to efficiently read individual pixels from cairo surfaces.

This function will create an RGB pixbuf with 8 bits per channel. The pixbuf will contain an alpha channel if the `surface` contains one.

#### Parameters

`surface` | `cairo_surface_t*`
| Surface to copy from.
| The data is owned by the caller of the function.
`src_x` | `int`
| Source X coordinate within `surface`.
`src_y` | `int`
| Source Y coordinate within `surface`.
`width` | `int`
| Width in pixels of region to get.
`height` | `int`
| Height in pixels of region to get.

#### Return value

Returns: | `Gdkixbuf.Pixbuf`
| A newly-created pixbuf with a reference count of 1.
| The caller of the function takes ownership of the data, and is responsible for freeing it.
| The return value can be `NULL`.