### Method

# Vips Image thumbnail_image

#### Declaration [src]

    int
    vips_thumbnail_image (
      VipsImage* in,
      VipsImage** out,
      int width,
      ...
    )

#### Description [src]

Exactly as `vips_thumbnail()`, but read from an existing image.

This operation is not able to exploit shrink-on-load features of image load libraries, so it can be much slower than `vips_thumbnail()` and produce poorer quality output. Only use this operation if you really have to.

Optional arguments

- `height`: `gint`, target height in pixels
- `size`: `VipsSize`, upsize, downsize, both or force
- `no_rotate`: `gboolean`, don’t rotate upright using orientation tag
- `crop`: `VipsInteresting`, shrink and crop to fill target
- `linear`: `gboolean`, perform shrink in linear light
- `input_profile`: `gchararray`, fallback input ICC profile
- `output_profile`: `gchararray`, output ICC profile
- `intent`: `VipsIntent`, rendering intent
- `fail_on`: `VipsFailOn`, load error types to fail on

See also

`vips_thumbnail()`.

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.

`width`

  Type: `int`

  Target width in pixels.

`...`

  Type: ``

  `NULL`-terminated list of optional named arguments.

#### Return value

Type: `int`

0 on success, -1 on error.