### Method

# Vips Image quadratic

#### Declaration [src]

    int
    vips_quadratic (
      VipsImage* in,
      VipsImage** out,
      VipsImage* coeff,
      ...
    )

#### Description [src]

Transform an image with a 0, 1, 2, or 3rd order polynomial.

The transform we compute:

    x = x' + a              : order 0     image shift only
      + b x' + c y'         : order 1     + affine transf.
      + d x' y'             : order 2     + bilinear transf.
      + e x' x' + f y' y'   : order 3     + quadratic transf.

    y = y' + g
      + h y' + i x'
      + j y' x'
      + k y' y' + l x' x'

where:

    x', y' = coordinates of srcim
    x, y   = coordinates of dstim
    a .. l = coefficients

The coefficients are in the input matrix, ordered as:

    a g
    --
    b h
    c i
    --
    d j
    --
    e k
    f l

The matrix height may be 1, 3, 4, 6

Optional arguments

- `interpolate`: `VipsInterpolate`, use this interpolator (default bilinear)

See also

`vips_affine()`.

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.

`coeff`

  Type: `VipsImage`

  Horizontal quadratic.

  The data is owned by the caller of the method.

`...`

  Type: ``

  `NULL`-terminated list of optional named arguments.

#### Return value

Type: `int`

0 on success, -1 on error.