# PIL Package (autodoc of remaining modules)

Reference for modules whose documentation has not yet been ported or written can be found here.

## `PIL` Module

exception PIL.UnidentifiedImageError

  Bases: `OSError`

  Raised in `PIL.Image.open()` if an image cannot be opened and identified.

  If a PNG image raises this error, setting `ImageFile.LOAD_TRUNCATED_IMAGES` to true may allow the image to be opened after all. The setting will ignore missing data and checksum failures.

## `BdfFontFile` Module

Parse X Bitmap Distribution Format (BDF)

class PIL.BdfFontFile.BdfFontFile(fp: BinaryIO)

  Bases: `FontFile`

  Font file plugin for the X11 BDF format.

PIL.BdfFontFile.bdf_char(f: BinaryIO) → tuple[str, int, tuple[tuple[int, int], tuple[int, int, int, int], tuple[int, int, int, int]], Image] | None

## `ContainerIO` Module

class PIL.ContainerIO.ContainerIO(file: IO, offset: int, length: int)

  Bases: `Generic`

  A file object that provides read access to a part of an existing file (for example a TAR file).

  isatty() → bool
  read(n: int = 0) → AnyStr

    Read data.

    Parameters:

      n – Number of bytes to read. If omitted or zero, read until end of region.

    Returns:

      An 8-bit string.

  readline() → AnyStr

    Read a line of text.

    Returns:

      An 8-bit string.

  readlines() → list[AnyStr]

    Read multiple lines of text.

    Returns:

      A list of 8-bit strings.

  seek(offset: int, mode: Literal[0, 1, 2] = 0) → None

    Move file pointer.

    Parameters:

      - offset – Offset in bytes.

      - mode – Starting position. Use 0 for beginning of region, 1 for current offset, and 2 for end of region. You cannot move the pointer outside the defined region.

  tell() → int

    Get current file pointer.

    Returns:

      Offset from start of region, in bytes.

## `FontFile` Module

class PIL.FontFile.FontFile

  Bases: `object`

  Base class for raster font file handlers.

  bitmap: Image | None = None
  compile() → None

    Create metrics and bitmap

  save(filename: str) → None

    Save font

PIL.FontFile.puti16(fp: BinaryIO, values: tuple[int, int, int, int, int, int, int, int, int, int]) → None

  Write network order (big-endian) 16-bit sequence

## `GdImageFile` Module

Note

This format cannot be automatically recognized, so the class is not registered for use with `PIL.Image.open()`. To open a gd file, use the `PIL.GdImageFile.open()` function instead.

Warning

THE GD FORMAT IS NOT DESIGNED FOR DATA INTERCHANGE. This implementation is provided for convenience and demonstrational purposes only.

class PIL.GdImageFile.GdImageFile(fp=None, filename=None)

  Bases: `ImageFile`

  Image plugin for the GD uncompressed format. Note that this format is not supported by the standard `PIL.Image.open()` function. To use this plugin, you have to import the `PIL.GdImageFile` module and use the `PIL.GdImageFile.open()` function.

  format: str | None = 'GD'
  format_description: str | None = 'GD uncompressed images'

PIL.GdImageFile.open(fp, mode='r')

  Load texture from a GD image file.

  Parameters:

    - fp – GD file name, or an opened file handle.

    - mode – Optional mode. In this version, if the mode argument is given, it must be “r”.

  Returns:

    An image instance.

  Raises:

    OSError – If the image could not be read.

## `GimpGradientFile` Module

Stuff to translate curve segments to palette values (derived from the corresponding code in GIMP, written by Federico Mena Quintero. See the GIMP distribution for more information.)

PIL.GimpGradientFile.EPSILON = 1e-10

class PIL.GimpGradientFile.GimpGradientFile(fp)

  Bases: `GradientFile`

  File handler for GIMP’s gradient format.

class PIL.GimpGradientFile.GradientFile

  Bases: `object`

  getpalette(entries=256)
  gradient = None

PIL.GimpGradientFile.SEGMENTS = [<function linear>, <function curved>, <function sine>, <function sphere_increasing>, <function sphere_decreasing>]

PIL.GimpGradientFile.curved(middle, pos)

PIL.GimpGradientFile.linear(middle, pos)

PIL.GimpGradientFile.sine(middle, pos)

PIL.GimpGradientFile.sphere_decreasing(middle, pos)

PIL.GimpGradientFile.sphere_increasing(middle, pos)

## `GimpPaletteFile` Module

class PIL.GimpPaletteFile.GimpPaletteFile(fp)

  Bases: `object`

  File handler for GIMP’s palette format.

  getpalette()
  rawmode = 'RGB'

## `ImageDraw2` Module

(Experimental) WCK-style drawing interface operations

See also

`PIL.ImageDraw`

class PIL.ImageDraw2.Pen(color, width=1, opacity=255)

  Bases: `object`

  Stores an outline color and width.

class PIL.ImageDraw2.Brush(color, opacity=255)

  Bases: `object`

  Stores a fill color

class PIL.ImageDraw2.Font(color, file, size=12)

  Bases: `object`

  Stores a TrueType font and color

class PIL.ImageDraw2.Draw(image, size=None, color=None)

  Bases: `object`

  (Experimental) WCK-style drawing interface

  flush()
  render(op, xy, pen, brush=None)
  settransform(offset)

    Sets a transformation offset.

  arc(xy, start, end, *options)

    Draws an arc (a portion of a circle outline) between the start and end angles, inside the given bounding box.

    See also

    `PIL.ImageDraw.ImageDraw.arc()`

  chord(xy, start, end, *options)

    Same as `arc()`, but connects the end points with a straight line.

    See also

    `PIL.ImageDraw.ImageDraw.chord()`

  ellipse(xy, *options)

    Draws an ellipse inside the given bounding box.

    See also

    `PIL.ImageDraw.ImageDraw.ellipse()`

  line(xy, *options)

    Draws a line between the coordinates in the `xy` list.

    See also

    `PIL.ImageDraw.ImageDraw.line()`

  pieslice(xy, start, end, *options)

    Same as arc, but also draws straight lines between the end points and the center of the bounding box.

    See also

    `PIL.ImageDraw.ImageDraw.pieslice()`

  polygon(xy, *options)

    Draws a polygon.

    The polygon outline consists of straight lines between the given coordinates, plus a straight line between the last and the first coordinate.

    See also

    `PIL.ImageDraw.ImageDraw.polygon()`

  rectangle(xy, *options)

    Draws a rectangle.

    See also

    `PIL.ImageDraw.ImageDraw.rectangle()`

  text(xy, text, font)

    Draws the string at the given position.

    See also

    `PIL.ImageDraw.ImageDraw.text()`

  textbbox(xy, text, font)

    Returns bounding box (in pixels) of given text.

    Returns:

      `(left, top, right, bottom)` bounding box

    See also

    `PIL.ImageDraw.ImageDraw.textbbox()`

  textlength(text, font)

    Returns length (in pixels) of given text. This is the amount by which following text should be offset.

    See also

    `PIL.ImageDraw.ImageDraw.textlength()`

## `ImageMode` Module

class PIL.ImageMode.ModeDescriptor(mode: str, bands: tuple[str, ...], basemode: str, basetype: str, typestr: str)

  Bases: `object`

  Wrapper for mode strings.

PIL.ImageMode.getmode(mode: str) → ModeDescriptor

  Gets a mode descriptor for the given mode.

## `ImageTransform` Module

class PIL.ImageTransform.AffineTransform(data: Sequence[int])

  Bases: `Transform`

  Define an affine image transform.

  This function takes a 6-tuple (a, b, c, d, e, f) which contain the first two rows from an affine transform matrix. For each pixel (x, y) in the output image, the new value is taken from a position (a x + b y + c, d x + e y + f) in the input image, rounded to nearest pixel.

  This function can be used to scale, translate, rotate, and shear the original image.

  See `transform()`

  Parameters:

    matrix – A 6-tuple (a, b, c, d, e, f) containing the first two rows from an affine transform matrix.

  method: Transform = 0

class PIL.ImageTransform.ExtentTransform(data: Sequence[int])

  Bases: `Transform`

  Define a transform to extract a subregion from an image.

  Maps a rectangle (defined by two corners) from the image to a rectangle of the given size. The resulting image will contain data sampled from between the corners, such that (x0, y0) in the input image will end up at (0,0) in the output image, and (x1, y1) at size.

  This method can be used to crop, stretch, shrink, or mirror an arbitrary rectangle in the current image. It is slightly slower than crop, but about as fast as a corresponding resize operation.

  See `transform()`

  Parameters:

    bbox – A 4-tuple (x0, y0, x1, y1) which specifies two points in the input image’s coordinate system. See Coordinate System.

  method: Transform = 1

class PIL.ImageTransform.MeshTransform(data: Sequence[int])

  Bases: `Transform`

  Define a mesh image transform. A mesh transform consists of one or more individual quad transforms.

  See `transform()`

  Parameters:

    data – A list of (bbox, quad) tuples.

  method: Transform = 4

class PIL.ImageTransform.QuadTransform(data: Sequence[int])

  Bases: `Transform`

  Define a quad image transform.

  Maps a quadrilateral (a region defined by four corners) from the image to a rectangle of the given size.

  See `transform()`

  Parameters:

    xy – An 8-tuple (x0, y0, x1, y1, x2, y2, x3, y3) which contain the upper left, lower left, lower right, and upper right corner of the source quadrilateral.

  method: Transform = 3

class PIL.ImageTransform.Transform(data: Sequence[int])

  Bases: `ImageTransformHandler`

  getdata() → tuple[int, Sequence[int]]
  method: Transform
  transform(size: tuple[int, int], image: Image, **options: dict[str, str | int | tuple[int, ...] | list[int]]) → Image

## `PaletteFile` Module

class PIL.PaletteFile.PaletteFile(fp)

  Bases: `object`

  File handler for Teragon-style palette files.

  getpalette()
  rawmode = 'RGB'

## `PcfFontFile` Module

class PIL.PcfFontFile.PcfFontFile(fp: BinaryIO, charset_encoding: str = 'iso8859-1')

  Bases: `FontFile`

  Font file plugin for the X11 PCF format.

  name = 'name'

PIL.PcfFontFile.sz(s: bytes, o: int) → bytes

## `PngImagePlugin.iTXt` Class

class PIL.PngImagePlugin.iTXt(text, lang=None, tkey=None)

  Bases: `str`

  Subclass of string to allow iTXt chunks to look like strings while keeping their extra information

  __new__(cls, text, lang, tkey)
    Parameters:

      - value – value for this key

      - lang – language code

      - tkey – UTF-8 version of the key name

## `PngImagePlugin.PngInfo` Class

class PIL.PngImagePlugin.PngInfo

  Bases: `object`

  PNG chunk container (for use with save(pnginfo=))

  add(cid, data, after_idat=False)

    Appends an arbitrary chunk. Use with caution.

    Parameters:

      - cid – a byte string, 4 bytes long.

      - data – a byte string of the encoded data

      - after_idat – for use with private chunks. Whether the chunk should be written after IDAT

  add_itxt(key, value, lang='', tkey='', zip=False)

    Appends an iTXt chunk.

    Parameters:

      - key – latin-1 encodable text key name

      - value – value for this key

      - lang – language code

      - tkey – UTF-8 version of the key name

      - zip – compression flag

  add_text(key, value, zip=False)

    Appends a text chunk.

    Parameters:

      - key – latin-1 encodable text key name

      - value – value for this key, text or an `PIL.PngImagePlugin.iTXt` instance

      - zip – compression flag

## `TarIO` Module

class PIL.TarIO.TarIO(tarfile: str, file: str)

  Bases: `ContainerIO`[`bytes`]

  A file object that provides read access to a given member of a TAR file.

  close() → None

## `WalImageFile` Module

This reader is based on the specification available from: https://www.flipcode.com/archives/Quake_2_BSP_File_Format.shtml and has been tested with a few sample files found using google.

Note

This format cannot be automatically recognized, so the reader is not registered for use with `PIL.Image.open()`. To open a WAL file, use the `PIL.WalImageFile.open()` function instead.

class PIL.WalImageFile.WalImageFile(fp=None, filename=None)

  Bases: `ImageFile`

  format: str | None = 'WAL'
  format_description: str | None = 'Quake2 Texture'
  load()

    Load image data based on tile list

PIL.WalImageFile.open(filename)

  Load texture from a Quake2 WAL texture file.

  By default, a Quake2 standard palette is attached to the texture. To override the palette, use the `PIL.Image.Image.putpalette()` method.

  Parameters:

    filename – WAL file name, or an opened file handle.

  Returns:

    An image instance.