ImagePath Module

The ImagePath module is used to store and manipulate 2-dimensionalvector data. Path objects can be passed to the methods on theImageDraw module.

  • class PIL.ImagePath.Path
  • A path object. The coordinate list can be any sequence object containingeither 2-tuples [(x, y), …] or numeric values [x, y, …].

You can also create a path object from another path object.

In 1.1.6 and later, you can also pass in any object that implementsPython’s buffer API. The buffer should provide read access, and contain Cfloats in machine byte order.

The path object implements most parts of the Python sequence interface, andbehaves like a list of (x, y) pairs. You can use len(), item access, andslicing as usual. However, the current version does not support sliceassignment, or item and slice deletion.

Parameters:xy – A sequence. The sequence can contain 2-tuples [(x, y), …]or a flat list of numbers [x, y, …].

  • PIL.ImagePath.Path.compact(distance=2)
  • Compacts the path, by removing points that are close to each other. Thismethod modifies the path in place, and returns the number of points left inthe path.

distance is measured as Manhattan distance and defaults to twopixels.

  • PIL.ImagePath.Path.getbbox()
  • Gets the bounding box of the path.

Returns:(x0, y0, x1, y1)

  • PIL.ImagePath.Path.map(function)
  • Maps the path through a function.
  • PIL.ImagePath.Path.tolist(flat=0)
  • Converts the path to a Python list [(x, y), …].

Parameters:flat – By default, this function returns a list of 2-tuples[(x, y), …]. If this argument is True, itreturns a flat list [x, y, …] instead.Returns:A list of coordinates. See flat.

  • PIL.ImagePath.Path.transform(matrix)
  • Transforms the path in place, using an affine transform. The matrix is a6-tuple (a, b, c, d, e, f), and each point is mapped as follows:
  1. xOut = xIn * a + yIn * b + c
  2. yOut = xIn * d + yIn * e + f