### Method

# Vips Image sink

#### Declaration [src]

    int
    vips_sink (
      VipsImage* im,
      VipsStartFn start_fn,
      VipsGenerateFn generate_fn,
      VipsStopFn stop_fn,
      void* a,
      void* b
    )

#### Description [src]

Loops over an image. `generate_fn` is called for every pixel in the image, with the `reg` argument being a region of calculated pixels. `vips_sink()` is used to implement operations like `vips_avg()` which have no image output.

Each set of pixels is sized according to the requirements of the image pipeline that generated `im`.

See also

`vips_image_generate()`, `vips_image_new()`.

#### Parameters

`start_fn`

  Type: `VipsStartFn`

  Start sequences with this function.

`generate_fn`

  Type: `VipsGenerateFn`

  Generate pixels with this function.

`stop_fn`

  Type: `VipsStopFn`

  Stop sequences with this function.

`a`

  Type: `void*`

  User data.

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

`b`

  Type: `void*`

  User data.

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

#### Return value

Type: `int`

0 on success, or -1 on error.