### Method

# Rsvg Handleget_pixbuf_sub

#### Declaration [src]

    GdkPixbuf*
    rsvg_handle_get_pixbuf_sub (
      RsvgHandle* handle,
      const char* id
    )

#### Description [src]

Creates a `GdkPixbuf` the same size as the entire SVG loaded into `handle`, but only renders the sub-element that has the specified `id` (and all its sub-sub-elements recursively). If `id` is `NULL`, this function renders the whole SVG.

This function depends on the `RsvgHandle`‘s dots-per-inch value (DPI) to compute the “natural size” of the document in pixels, so you should call `rsvg_handle_set_dpi()` beforehand.

If you need to render an image which is only big enough to fit a particular sub-element of the SVG, consider using `rsvg_handle_render_element()`.

Element IDs should look like an URL fragment identifier; for example, pass `#foo` (hash `foo`) to get the geometry of the element that has an `id="foo"` attribute.

API ordering: This function must be called on a fully-loaded `handle`. See the section “API ordering” for details.

Available since: | 2.14

#### Parameters

`id` | `const char*`
| An element’s id within the SVG, starting with “#” (a single hash character), for example, `#layer1`. This notation corresponds to a URL’s fragment ID. Alternatively, pass `NULL` to use the whole SVG.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
| The value is a NUL terminated UTF-8 string.

#### Return value

Returns: | `GdkPixbuf`
| A pixbuf, or `NULL` if an error occurs during rendering.
| The caller of the method takes ownership of the data, and is responsible for freeing it.
| The return value can be `NULL`.