### Function

# Gimp clone

#### Declaration [src]

    gboolean
    gimp_clone (
      GimpDrawable* drawable,
      GimpDrawable* src_drawable,
      GimpCloneType clone_type,
      gdouble src_x,
      gdouble src_y,
      gint num_strokes,
      const gdouble* strokes
    )

#### Description [src]

Clone from the source to the dest drawable using the current brush

This tool clones (copies) from the source drawable starting at the specified source coordinates to the dest drawable. If the "clone_type" argument is set to PATTERN-CLONE, then the current pattern is used as the source and the "src_drawable" argument is ignored. Pattern cloning assumes a tileable pattern and mods the sum of the src coordinates and subsequent stroke offsets with the width and height of the pattern. For image cloning, if the sum of the src coordinates and subsequent stroke offsets exceeds the extents of the src drawable, then no paint is transferred. The clone tool is capable of transforming between any image types including RGB->Indexed—although converting from any type to indexed is significantly slower.

#### Parameters

`drawable` | `GimpDrawable`
| The affected drawable.
| The data is owned by the caller of the function.
`src_drawable` | `GimpDrawable`
| The source drawable.
| The data is owned by the caller of the function.
`clone_type` | `GimpCloneType`
| The type of clone.
`src_x` | `gdouble`
| The x coordinate in the source image.
`src_y` | `gdouble`
| The y coordinate in the source image.
`num_strokes` | `gint`
| Number of stroke control points (count each coordinate as 2 points).
`strokes` | An array of `double`
| Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, …, sn.x, sn.y }.
| The length of the array is specified in the `num_strokes` argument.
| The data is owned by the caller of the function.

#### Return value

Returns: | `gboolean`
| TRUE on success.