### Method

# Vips Image grid

#### Declaration [src]

    int
    vips_grid (
      VipsImage* in,
      VipsImage** out,
      int tile_height,
      int across,
      int down,
      ...
    )

#### Description [src]

Chop a tall thin image up into a set of tiles, lay the tiles out in a grid.

The input image should be a very tall, thin image containing a list of smaller images. Volumetric or time-sequence images are often laid out like this. This image is chopped into a series of tiles, each `tile_height` pixels high and the width of `in`. The tiles are then rearranged into a grid `across` tiles across and `down` tiles down in row-major order.

Supplying `tile_height`, `across` and `down` is not strictly necessary, we only really need two of these. Requiring three is a double-check that the image has the expected geometry.

See also

`vips_embed()`, `vips_insert()`, `vips_join()`.

This method is not directly available to language bindings.

#### Parameters

`out`

  Type: `VipsImage`

  Output image.

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

`tile_height`

  Type: `int`

  Chop into tiles this high.

`across`

  Type: `int`

  Tiles across.

`down`

  Type: `int`

  Tiles down.

`...`

  Type: ``

  `NULL`-terminated list of optional named arguments.

#### Return value

Type: `int`

0 on success, -1 on error.