## gimppainttools gimppainttools — Access to toolbox paint tools. |

## Synopsis

    gboolean            gimp_airbrush                       (gint32 drawable_ID,
                                                             gdouble pressure,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_airbrush_default               (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_clone                          (gint32 drawable_ID,
                                                             gint32 src_drawable_ID,
                                                             GimpCloneType clone_type,
                                                             gdouble src_x,
                                                             gdouble src_y,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_clone_default                  (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_convolve                       (gint32 drawable_ID,
                                                             gdouble pressure,
                                                             GimpConvolveType convolve_type,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_convolve_default               (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_dodgeburn                      (gint32 drawable_ID,
                                                             gdouble exposure,
                                                             GimpDodgeBurnType dodgeburn_type,
                                                             GimpTransferMode dodgeburn_mode,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_dodgeburn_default              (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_edit_bucket_fill_full          (gint32 drawable_ID,
                                                             GimpBucketFillMode fill_mode,
                                                             GimpLayerModeEffects paint_mode,
                                                             gdouble opacity,
                                                             gdouble threshold,
                                                             gboolean sample_merged,
                                                             gboolean fill_transparent,
                                                             GimpSelectCriterion select_criterion,
                                                             gdouble x,
                                                             gdouble y);
    gboolean            gimp_eraser                         (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes,
                                                             GimpBrushApplicationMode hardness,
                                                             GimpPaintApplicationMode method);
    gboolean            gimp_eraser_default                 (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_heal                           (gint32 drawable_ID,
                                                             gint32 src_drawable_ID,
                                                             gdouble src_x,
                                                             gdouble src_y,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_heal_default                   (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_paintbrush                     (gint32 drawable_ID,
                                                             gdouble fade_out,
                                                             gint num_strokes,
                                                             const gdouble *strokes,
                                                             GimpPaintApplicationMode method,
                                                             gdouble gradient_length);
    gboolean            gimp_paintbrush_default             (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_pencil                         (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_smudge                         (gint32 drawable_ID,
                                                             gdouble pressure,
                                                             gint num_strokes,
                                                             const gdouble *strokes);
    gboolean            gimp_smudge_default                 (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

## Description

Functions giving access to toolbox paint tools.

## Details

### gimp_airbrush ()

    gboolean            gimp_airbrush                       (gint32 drawable_ID,
                                                             gdouble pressure,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Paint in the current brush with varying pressure. Paint application is time-dependent.

This tool simulates the use of an airbrush. Paint pressure represents the relative intensity of the paint application. High pressure results in a thicker layer of paint while low pressure results in a thinner layer.

`drawable_ID` : | The affected drawable.
`pressure` : | The pressure of the airbrush strokes.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_airbrush_default ()

    gboolean            gimp_airbrush_default               (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Paint in the current brush with varying pressure. Paint application is time-dependent.

This tool simulates the use of an airbrush. It is similar to `gimp_airbrush()` except that the pressure is derived from the airbrush tools options box. It the option has not been set the default for the option will be used.

`drawable_ID` : | The affected drawable.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_clone ()

    gboolean            gimp_clone                          (gint32 drawable_ID,
                                                             gint32 src_drawable_ID,
                                                             GimpCloneType clone_type,
                                                             gdouble src_x,
                                                             gdouble src_y,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

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.

`drawable_ID` : | The affected drawable.
`src_drawable_ID` : | The source drawable.
`clone_type` : | The type of clone.
`src_x` : | The x coordinate in the source image.
`src_y` : | The y coordinate in the source image.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_clone_default ()

    gboolean            gimp_clone_default                  (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

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. This function performs exactly the same as the `gimp_clone()` function except that the tools arguments are obtained from the clones option dialog. It this dialog has not been activated then the dialogs default values will be used.

`drawable_ID` : | The affected drawable.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_convolve ()

    gboolean            gimp_convolve                       (gint32 drawable_ID,
                                                             gdouble pressure,
                                                             GimpConvolveType convolve_type,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Convolve (Blur, Sharpen) using the current brush.

This tool convolves the specified drawable with either a sharpening or blurring kernel. The pressure parameter controls the magnitude of the operation. Like the paintbrush, this tool linearly interpolates between the specified stroke coordinates.

`drawable_ID` : | The affected drawable.
`pressure` : | The pressure.
`convolve_type` : | Convolve type.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_convolve_default ()

    gboolean            gimp_convolve_default               (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Convolve (Blur, Sharpen) using the current brush.

This tool convolves the specified drawable with either a sharpening or blurring kernel. This function performs exactly the same as the `gimp_convolve()` function except that the tools arguments are obtained from the convolve option dialog. It this dialog has not been activated then the dialogs default values will be used.

`drawable_ID` : | The affected drawable.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_dodgeburn ()

    gboolean            gimp_dodgeburn                      (gint32 drawable_ID,
                                                             gdouble exposure,
                                                             GimpDodgeBurnType dodgeburn_type,
                                                             GimpTransferMode dodgeburn_mode,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Dodgeburn image with varying exposure.

Dodgeburn. More details here later.

`drawable_ID` : | The affected drawable.
`exposure` : | The exposure of the strokes.
`dodgeburn_type` : | The type either dodge or burn.
`dodgeburn_mode` : | The mode.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_dodgeburn_default ()

    gboolean            gimp_dodgeburn_default              (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Dodgeburn image with varying exposure. This is the same as the `gimp_dodgeburn()` function except that the exposure, type and mode are taken from the tools option dialog. If the dialog has not been activated then the defaults as used by the dialog will be used.

Dodgeburn. More details here later.

`drawable_ID` : | The affected drawable.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_edit_bucket_fill_full ()

    gboolean            gimp_edit_bucket_fill_full          (gint32 drawable_ID,
                                                             GimpBucketFillMode fill_mode,
                                                             GimpLayerModeEffects paint_mode,
                                                             gdouble opacity,
                                                             gdouble threshold,
                                                             gboolean sample_merged,
                                                             gboolean fill_transparent,
                                                             GimpSelectCriterion select_criterion,
                                                             gdouble x,
                                                             gdouble y);

Fill the area specified either by the current selection if there is one, or by a seed fill starting at the specified coordinates.

This tool requires information on the paint application mode, and the fill mode, which can either be in the foreground color, or in the currently active pattern. If there is no selection, a seed fill is executed at the specified coordinates and extends outward in keeping with the threshold parameter. If there is a selection in the target image, the threshold, sample merged, x, and y arguments are unused. If the sample_merged parameter is TRUE, the data of the composite image will be used instead of that for the specified drawable. This is equivalent to sampling for colors after merging all visible layers. In the case of merged sampling, the x and y coordinates are relative to the image's origin; otherwise, they are relative to the drawable's origin.

`drawable_ID` : | The affected drawable.
`fill_mode` : | The type of fill.
`paint_mode` : | The paint application mode.
`opacity` : | The opacity of the final bucket fill.
`threshold` : | The threshold determines how extensive the seed fill will be. It's value is specified in terms of intensity levels. This parameter is only valid when there is no selection in the specified image.
`sample_merged` : | Use the composite image, not the drawable.
`fill_transparent` : | Whether to consider transparent pixels for filling. If TRUE, transparency is considered as a unique fillable color.
`select_criterion` : | The criterion used to determine color similarity. SELECT_CRITERION_COMPOSITE is the standard choice.
`x` : | The x coordinate of this bucket fill's application. This parameter is only valid when there is no selection in the specified image.
`y` : | The y coordinate of this bucket fill's application. This parameter is only valid when there is no selection in the specified image.
Returns : | TRUE on success.

Since GIMP 2.4

### gimp_eraser ()

    gboolean            gimp_eraser                         (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes,
                                                             GimpBrushApplicationMode hardness,
                                                             GimpPaintApplicationMode method);

Erase using the current brush.

This tool erases using the current brush mask. If the specified drawable contains an alpha channel, then the erased pixels will become transparent. Otherwise, the eraser tool replaces the contents of the drawable with the background color. Like paintbrush, this tool linearly interpolates between the specified stroke coordinates.

`drawable_ID` : | The affected drawable.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
`hardness` : | How to apply the brush.
`method` : | The paint method to use.
Returns : | TRUE on success.

### gimp_eraser_default ()

    gboolean            gimp_eraser_default                 (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Erase using the current brush.

This tool erases using the current brush mask. This function performs exactly the same as the `gimp_eraser()` function except that the tools arguments are obtained from the eraser option dialog. It this dialog has not been activated then the dialogs default values will be used.

`drawable_ID` : | The affected drawable.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_heal ()

    gboolean            gimp_heal                           (gint32 drawable_ID,
                                                             gint32 src_drawable_ID,
                                                             gdouble src_x,
                                                             gdouble src_y,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

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

This tool heals the source drawable starting at the specified source coordinates to the dest drawable. For image healing, if the sum of the src coordinates and subsequent stroke offsets exceeds the extents of the src drawable, then no paint is transferred. The healing tool is capable of transforming between any image types except RGB->Indexed.

`drawable_ID` : | The affected drawable.
`src_drawable_ID` : | The source drawable.
`src_x` : | The x coordinate in the source image.
`src_y` : | The y coordinate in the source image.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

Since GIMP 2.4

### gimp_heal_default ()

    gboolean            gimp_heal_default                   (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

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

This tool heals from the source drawable starting at the specified source coordinates to the dest drawable. This function performs exactly the same as the `gimp_heal()` function except that the tools arguments are obtained from the healing option dialog. It this dialog has not been activated then the dialogs default values will be used.

`drawable_ID` : | The affected drawable.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

Since GIMP 2.4

### gimp_paintbrush ()

    gboolean            gimp_paintbrush                     (gint32 drawable_ID,
                                                             gdouble fade_out,
                                                             gint num_strokes,
                                                             const gdouble *strokes,
                                                             GimpPaintApplicationMode method,
                                                             gdouble gradient_length);

Paint in the current brush with optional fade out parameter and pull colors from a gradient.

This tool is the standard paintbrush. It draws linearly interpolated lines through the specified stroke coordinates. It operates on the specified drawable in the foreground color with the active brush. The 'fade-out' parameter is measured in pixels and allows the brush stroke to linearly fall off. The pressure is set to the maximum at the beginning of the stroke. As the distance of the stroke nears the fade-out value, the pressure will approach zero. The gradient-length is the distance to spread the gradient over. It is measured in pixels. If the gradient-length is 0, no gradient is used.

`drawable_ID` : | The affected drawable.
`fade_out` : | Fade out parameter.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
`method` : | The paint method to use.
`gradient_length` : | Length of gradient to draw.
Returns : | TRUE on success.

### gimp_paintbrush_default ()

    gboolean            gimp_paintbrush_default             (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Paint in the current brush. The fade out parameter and pull colors from a gradient parameter are set from the paintbrush options dialog. If this dialog has not been activated then the dialog defaults will be used.

This tool is similar to the standard paintbrush. It draws linearly interpolated lines through the specified stroke coordinates. It operates on the specified drawable in the foreground color with the active brush. The 'fade-out' parameter is measured in pixels and allows the brush stroke to linearly fall off (value obtained from the option dialog). The pressure is set to the maximum at the beginning of the stroke. As the distance of the stroke nears the fade-out value, the pressure will approach zero. The gradient-length (value obtained from the option dialog) is the distance to spread the gradient over. It is measured in pixels. If the gradient-length is 0, no gradient is used.

`drawable_ID` : | The affected drawable.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_pencil ()

    gboolean            gimp_pencil                         (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Paint in the current brush without sub-pixel sampling.

This tool is the standard pencil. It draws linearly interpolated lines through the specified stroke coordinates. It operates on the specified drawable in the foreground color with the active brush. The brush mask is treated as though it contains only black and white values. Any value below half is treated as black; any above half, as white.

`drawable_ID` : | The affected drawable.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_smudge ()

    gboolean            gimp_smudge                         (gint32 drawable_ID,
                                                             gdouble pressure,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Smudge image with varying pressure.

This tool simulates a smudge using the current brush. High pressure results in a greater smudge of paint while low pressure results in a lesser smudge.

`drawable_ID` : | The affected drawable.
`pressure` : | The pressure of the smudge strokes.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.

### gimp_smudge_default ()

    gboolean            gimp_smudge_default                 (gint32 drawable_ID,
                                                             gint num_strokes,
                                                             const gdouble *strokes);

Smudge image with varying pressure.

This tool simulates a smudge using the current brush. It behaves exactly the same as `gimp_smudge()` except that the pressure value is taken from the smudge tool options or the options default if the tools option dialog has not been activated.

`drawable_ID` : | The affected drawable.
`num_strokes` : | Number of stroke control points (count each coordinate as 2 points).
`strokes` : | Array of stroke coordinates: { s1.x, s1.y, s2.x, s2.y, ..., sn.x, sn.y }.
Returns : | TRUE on success.