## gimppaths

gimppaths — Operations related to paths.

## Synopsis

    gchar**     gimp_path_list                  (gint32 image_ID,
                                                 gint *num_paths);
    gint        gimp_path_get_points            (gint32 image_ID,
                                                 const gchar *name,
                                                 gint *path_closed,
                                                 gint *num_path_point_details,
                                                 gdouble **points_pairs);
    gchar*      gimp_path_get_current           (gint32 image_ID);
    gboolean    gimp_path_set_current           (gint32 image_ID,
                                                 const gchar *name);
    gboolean    gimp_path_set_points            (gint32 image_ID,
                                                 const gchar *name,
                                                 gint ptype,
                                                 gint num_path_points,
                                                 const gdouble *points_pairs);
    gboolean    gimp_path_stroke_current        (gint32 image_ID);
    gint        gimp_path_get_point_at_dist     (gint32 image_ID,
                                                 gdouble distance,
                                                 gint *y_point,
                                                 gdouble *slope);
    gint        gimp_path_get_tattoo            (gint32 image_ID,
                                                 const gchar *name);
    gchar*      gimp_get_path_by_tattoo         (gint32 image_ID,
                                                 gint tattoo);
    gboolean    gimp_path_delete                (gint32 image_ID,
                                                 const gchar *name);
    gboolean    gimp_path_get_locked            (gint32 image_ID,
                                                 const gchar *name);
    gboolean    gimp_path_set_locked            (gint32 image_ID,
                                                 const gchar *name,
                                                 gboolean locked);
    gboolean    gimp_path_set_tattoo            (gint32 image_ID,
                                                 const gchar *name,
                                                 gint tattovalue);
    gboolean    gimp_path_to_selection          (gint32 image_ID,
                                                 const gchar *name,
                                                 GimpChannelOps op,
                                                 gboolean antialias,
                                                 gboolean feather,
                                                 gdouble feather_radius_x,
                                                 gdouble feather_radius_y);
    gboolean    gimp_path_import                (gint32 image_ID,
                                                 const gchar *filename,
                                                 gboolean merge,
                                                 gboolean scale);
    gboolean    gimp_path_import_string         (gint32 image_ID,
                                                 const gchar *string,
                                                 gint length,
                                                 gboolean merge,
                                                 gboolean scale);

## Description

Operations related to paths.

## Details

### gimp_path_list ()

    gchar**     gimp_path_list                  (gint32 image_ID,
                                                 gint *num_paths);

### Warning

`gimp_path_list` is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use `gimp_image_get_vectors()` instead.

`image_ID` : | The image to list the paths from.
`num_paths` : | The number of paths returned.
Returns : | List of the paths belonging to this image.

### gimp_path_get_points ()

    gint        gimp_path_get_points            (gint32 image_ID,
                                                 const gchar *name,
                                                 gint *path_closed,
                                                 gint *num_path_point_details,
                                                 gdouble **points_pairs);

List the points associated with the named path.

List the points associated with the named path.

`image_ID` : | The image to list the paths from.
`name` : | The name of the path whose points should be listed.
`path_closed` : | Return if the path is closed. (0 = path open, 1 = path closed).
`num_path_point_details` : | The number of points returned. Each point is made up of (x, y, pnt_type) of floats.
`points_pairs` : | The points in the path represented as 3 floats. The first is the x pos, next is the y pos, last is the type of the pnt. The type field is dependant on the path type. For beziers (type 1 paths) the type can either be (1.0 = BEZIER_ANCHOR, 2.0 = BEZIER_CONTROL, 3.0 = BEZIER_MOVE). Note all points are returned in pixel resolution.
Returns : | The type of the path. Currently only one type (1 = Bezier) is supported.

### gimp_path_get_current ()

    gchar*      gimp_path_get_current           (gint32 image_ID);

### Warning

`gimp_path_get_current` is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use `gimp_image_get_active_vectors()` instead.

`image_ID` : | The image to get the current path from.
Returns : | The name of the current path.

### gimp_path_set_current ()

    gboolean    gimp_path_set_current           (gint32 image_ID,
                                                 const gchar *name);

### Warning

`gimp_path_set_current` is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use `gimp_image_set_active_vectors()` instead.

`image_ID` : | The image in which a path will become current.
`name` : | The name of the path to make current.
Returns : | TRUE on success.

### gimp_path_set_points ()

    gboolean    gimp_path_set_points            (gint32 image_ID,
                                                 const gchar *name,
                                                 gint ptype,
                                                 gint num_path_points,
                                                 const gdouble *points_pairs);

Set the points associated with the named path.

Set the points associated with the named path.

`image_ID` : | The image to set the paths in.
`name` : | The name of the path to create. If it exists then a unique name will be created - query the list of paths if you want to make sure that the name of the path you create is unique. This will be set as the current path.
`ptype` : | The type of the path. Currently only one type (1 = Bezier) is supported.

`num_path_points` :

The number of elements in the array, i.e. the number of points in the path * 3. Each point is made up of (x, y, type) of floats. Currently only the creation of bezier curves is allowed. The type parameter must be set to (1) to indicate a BEZIER type curve. Note that for BEZIER curves, points must be given in the following order: ACCACCAC... If the path is not closed the last control point is missed off. Points consist of three control points (control/anchor/control) so for a curve that is not closed there must be at least two points passed (2 x,y pairs). If (num_path_points/3) % 3 = 0 then the path is assumed to be closed and the points are ACCACCACCACC.

`points_pairs` : | The points in the path represented as 3 floats. The first is the x pos, next is the y pos, last is the type of the pnt. The type field is dependant on the path type. For beziers (type 1 paths) the type can either be (1.0 = BEZIER_ANCHOR, 2.0 = BEZIER_CONTROL, 3.0= BEZIER_MOVE). Note all points are returned in pixel resolution.
Returns : | TRUE on success.

### gimp_path_stroke_current ()

    gboolean    gimp_path_stroke_current        (gint32 image_ID);

Stroke the current path in the passed image.

Stroke the current path in the passed image.

`image_ID` : | The image which contains the path to stroke.
Returns : | TRUE on success.

### gimp_path_get_point_at_dist ()

    gint        gimp_path_get_point_at_dist     (gint32 image_ID,
                                                 gdouble distance,
                                                 gint *y_point,
                                                 gdouble *slope);

### Warning

`gimp_path_get_point_at_dist` is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use `gimp_vectors_stroke_get_point_at_dist()` instead.

`image_ID` : | The image the paths belongs to.
`distance` : | The distance along the path.
`y_point` : | The y position of the point.
`slope` : | The slope (dy / dx) at the specified point.
Returns : | The x position of the point.

### gimp_path_get_tattoo ()

    gint        gimp_path_get_tattoo            (gint32 image_ID,
                                                 const gchar *name);

### Warning

`gimp_path_get_tattoo` is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use `gimp_vectors_get_tattoo()` instead.

`image_ID` : | The image.
`name` : | The name of the path whose tattoo should be obtained.
Returns : | The tattoo associated with the named path.

### gimp_get_path_by_tattoo ()

    gchar*      gimp_get_path_by_tattoo         (gint32 image_ID,
                                                 gint tattoo);

### Warning

`gimp_get_path_by_tattoo` is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use `gimp_image_get_vectors_by_tattoo()` instead.

`image_ID` : | The image.
`tattoo` : | The tattoo of the required path.
Returns : | The name of the path with the specified tattoo.

### gimp_path_delete ()

    gboolean    gimp_path_delete                (gint32 image_ID,
                                                 const gchar *name);

### Warning

`gimp_path_delete` is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use `gimp_image_remove_vectors()` instead.

`image_ID` : | The image to delete the path from.
`name` : | The name of the path to delete.
Returns : | TRUE on success.

### gimp_path_get_locked ()

    gboolean    gimp_path_get_locked            (gint32 image_ID,
                                                 const gchar *name);

### Warning

`gimp_path_get_locked` is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use `gimp_vectors_get_linked()` instead.

`image_ID` : | The image.
`name` : | The name of the path whose locked status should be obtained.
Returns : | TRUE if the path is locked, FALSE otherwise.

### gimp_path_set_locked ()

    gboolean    gimp_path_set_locked            (gint32 image_ID,
                                                 const gchar *name,
                                                 gboolean locked);

### Warning

`gimp_path_set_locked` is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use `gimp_vectors_set_linked()` instead.

`image_ID` : | The image.
`name` : | the name of the path whose locked status should be set.
`locked` : | Whether the path is locked.
Returns : | TRUE on success.

### gimp_path_set_tattoo ()

    gboolean    gimp_path_set_tattoo            (gint32 image_ID,
                                                 const gchar *name,
                                                 gint tattovalue);

### Warning

`gimp_path_set_tattoo` is deprecated and should not be used in newly-written code.

This procedure is deprecated! Use `gimp_vectors_set_tattoo()` instead.

`image_ID` : | The image.
`name` : | the name of the path whose tattoo should be set.
`tattovalue` : | The tattoo associated with the name path. Only values returned from 'path_get_tattoo' should be used here.
Returns : | TRUE on success.

### gimp_path_to_selection ()

    gboolean    gimp_path_to_selection          (gint32 image_ID,
                                                 const gchar *name,
                                                 GimpChannelOps op,
                                                 gboolean antialias,
                                                 gboolean feather,
                                                 gdouble feather_radius_x,
                                                 gdouble feather_radius_y);

Transforms the active path into a selection

This procedure renders the desired path into the current selection.

`image_ID` : | The image.
`name` : | The name of the path which should be made into selection.
`op` : | The desired operation with current selection.
`antialias` : | Antialias selection.
`feather` : | Feather selection.
`feather_radius_x` : | Feather radius x.
`feather_radius_y` : | Feather radius y.
Returns : | TRUE on success.

### gimp_path_import ()

    gboolean    gimp_path_import                (gint32 image_ID,
                                                 const gchar *filename,
                                                 gboolean merge,
                                                 gboolean scale);

Import paths from an SVG file.

This procedure imports paths from an SVG file. SVG elements other than paths and basic shapes are ignored.

`image_ID` : | The image.
`filename` : | The name of the SVG file to import.
`merge` : | Merge paths into a single vectors object.
`scale` : | Scale the SVG to image dimensions.
Returns : | TRUE on success.

### gimp_path_import_string ()

    gboolean    gimp_path_import_string         (gint32 image_ID,
                                                 const gchar *string,
                                                 gint length,
                                                 gboolean merge,
                                                 gboolean scale);

Import paths from an SVG string.

This procedure works like `gimp_path_import()` but takes a string rather than reading the SVG from a file. This allows you to write scripts that generate SVG and feed it to GIMP.

`image_ID` : | The image.
`string` : | A string that must be a complete and valid SVG document.
`length` : | Number of bytes in string or -1 if the string is NULL terminated.
`merge` : | Merge paths into a single vectors object.
`scale` : | Scale the SVG to image dimensions.
Returns : | TRUE on success.

Since GIMP 2.4