### Function

# Vips Image pipeline_array

#### Declaration [src]

    int
    vips_image_pipeline_array (
      VipsImage* image,
      VipsDemandStyle hint,
      VipsImage** in
    )

#### Description [src]

Add an image to a pipeline. `image` depends on all of the images in `in`, `image` prefers to supply pixels according to `hint`.

Operations can set demand hints, that is, hints to the VIPS IO system about the type of region geometry they work best with. For example, operations which transform coordinates will usually work best with `VIPS_DEMAND_STYLE_SMALLTILE`, operations which work on local windows of pixels will like `VIPS_DEMAND_STYLE_FATSTRIP`.

Header fields in `image` are set from the fields in `in`, with lower-numbered images in `in` taking priority. For example, if `in`[0] and `in`[1] both have an item called “icc-profile”, it’s the profile attached to `in`[0] that will end up on `image`. Image history is completely copied from all `in`. `image` will have the history of all the input images. The array of input images can be empty, meaning `image` is at the start of a pipeline.

VIPS uses the list of input images to build the tree of operations it needs for the cache invalidation system.

See also

`vips_image_pipelinev()`, `vips_image_generate()`.

#### Parameters

`image`

  Type: `VipsImage`

  Output image.

  The argument will be set by the function.
  The caller of the function takes ownership of the returned data, and is responsible for freeing it.

`hint`

  Type: `VipsDemandStyle`

  Demand hint for `image`.

`in`

  Type: An array of `VipsImage*`

  `NULL`-terminated array of input images.

  The array must be `NULL`-terminated.
  The data is owned by the caller of the function.

#### Return value

Type: `int`

0 on success, -1 on error.