### Method

# Vips Image draw_image

#### Declaration [src]

    int
    vips_draw_image (
      VipsImage* image,
      VipsImage* sub,
      int x,
      int y,
      ...
    )

#### Description [src]

Draw `sub` on top of `image` at position `x`, `y`.

The two images must have the same Coding. If `sub` has 1 band, the bands will be duplicated to match the number of bands in `image`. `sub` will be converted to `image`‘s format, see `vips_cast()`.

Use `mode` to set how pixels are combined. If you use `VIPS_COMBINE_MODE_ADD`, both images must be uncoded.

Optional arguments

- `mode`: `VipsCombineMode`, how to combine pixels

See also

`vips_draw_mask()`, `vips_insert()`.

This method is not directly available to language bindings.

#### Parameters

`sub`

  Type: `VipsImage`

  Image to paint.

  The data is owned by the caller of the method.

`x`

  Type: `int`

  Draw `sub` here.

`y`

  Type: `int`

  Draw `sub` here.

`...`

  Type: ``

  `NULL`-terminated list of optional named arguments.

#### Return value

Type: `int`

0 on success, or -1 on error.