Gegl.Buffer.get

### Method

# Gegl Buffer get

#### Declaration [src]

    void
    gegl_buffer_get (
      GeglBuffer* buffer,
      const GeglRectangle* rect,
      gdouble scale,
      const Babl* format,
      gpointer dest,
      gint rowstride,
      GeglAbyssPolicy repeat_mode
    )

#### Description [src]

Fetch a rectangular linear buffer of pixel data from the GeglBuffer, the data is converted to the desired BablFormat, if the BablFormat stored and fetched is the same this amounts to a series of memcpy’s aligned to demux the tile structure into a linear buffer.

This method is not directly available to language bindings.

The implementation of this method is provided by `gegl_buffer_introspectable_get()` in language bindings.

#### Parameters

`rect`

  Type: `GeglRectangle`

  The coordinates we want to retrieve data from, and width/height of destination buffer, if NULL equal to the extent of the buffer. The coordinates and dimensions are after scale has been applied.

  The data is owned by the caller of the method.

`scale`

  Type: `gdouble`

  Sampling scale, 1.0 = pixel for pixel 2.0 = magnify, 0.5 scale down.

`format`

  Type: `Babl`

  The BablFormat to store in the linear buffer `dest`.

  The data is owned by the caller of the method.

`dest`

  Type: `gpointer`

  The memory destination for a linear buffer for the pixels, the size needed depends on the requested BablFormat.

  The argument can be `NULL`.
  The data is owned by the caller of the method.

`rowstride`

  Type: `gint`

  Rowstride in bytes, or GEGL_AUTO_ROWSTRIDE to compute the rowstride based on the width and bytes per pixel for the specified format.

`repeat_mode`

  Type: `GeglAbyssPolicy`

  How requests outside the buffer extent are handled. Valid values: GEGL_ABYSS_NONE (abyss pixels are zeroed), GEGL_ABYSS_WHITE (abyss pixels are white), GEGL_ABYSS_BLACK (abyss pixels are black), GEGL_ABYSS_CLAMP (coordinates are clamped to the abyss rectangle), GEGL_ABYSS_LOOP (buffer contents are tiled if outside of the abyss rectangle) this argument also takes a GEGL_BUFFER_FILTER value or’ed into it, allowing to specify trade-off of performance/quality, valid values are: GEGL_BUFFER_FILTER_NEAREST, GEGL_BUFFER_FILTER_BILINEAR, GEGL_BUFFER_FILTER_BOX and GEGL_BUFFER_FILTER_AUTO.