### Method

# Vips Image smartcrop

#### Declaration [src]

    int
    vips_smartcrop (
      VipsImage* in,
      VipsImage** out,
      int width,
      int height,
      ...
    )

#### Description [src]

Crop an image down to a specified width and height by removing boring parts.

Use `interesting` to pick the method vips uses to decide which bits of the image should be kept.

You can test xoffset / yoffset on `out` to find the location of the crop within the input image.

Optional arguments

- `interesting`: `VipsInteresting` to use to find interesting areas (default: `VIPS_INTERESTING_ATTENTION`)
- `premultiplied`: `gboolean`, input image already has premultiplied alpha
- `attention_x`: `gint`, output, horizontal position of attention centre when using attention based cropping
- `attention_y`: `gint`, output, vertical position of attention centre when using attention based cropping

See also

`vips_extract_area()`.

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`

  Width of area to extract.

`height`

  Type: `int`

  Height of area to extract.

`...`

  Type: ``

  `NULL`-terminated list of optional named arguments.

#### Return value

Type: `int`

0 on success, -1 on error.