features Module

The PIL.features module can be used to detect which Pillow features are available on your system.

PIL.features.pilinfo(out=None, supported_formats=True)[source]

Prints information about this installation of Pillow. This function can be called with python3 -m PIL. It can also be called with python3 -m PIL.report or python3 -m PIL --report to have “supported_formats” set to False, omitting the list of all supported image file formats.

Parameters:
  • out – The output stream to print to. Defaults to sys.stdout if None.

  • supported_formats – If True, a list of all supported image file formats will be printed.

PIL.features.check(feature)[source]
Parameters:

feature – A module, codec, or feature name.

Returns:

True if the module, codec, or feature is available, False or None otherwise.

PIL.features.version(feature)[source]
Parameters:

feature – The module, codec, or feature to check for.

Returns:

The version number as a string, or None if unknown or not available.

PIL.features.get_supported()[source]
Returns:

A list of all supported modules, features, and codecs.

Modules

Support for the following modules can be checked:

  • pil: The Pillow core module, required for all functionality.

  • tkinter: Tkinter support.

  • freetype2: FreeType font support via PIL.ImageFont.truetype().

  • littlecms2: LittleCMS 2 support via PIL.ImageCms.

  • webp: WebP image support.

PIL.features.check_module(feature)[source]

Checks if a module is available.

Parameters:

feature – The module to check for.

Returns:

True if available, False otherwise.

Raises:

ValueError – If the module is not defined in this version of Pillow.

PIL.features.version_module(feature)[source]
Parameters:

feature – The module to check for.

Returns:

The loaded version number as a string, or None if unknown or not available.

Raises:

ValueError – If the module is not defined in this version of Pillow.

PIL.features.get_supported_modules()[source]
Returns:

A list of all supported modules.

Codecs

Support for these is only checked during Pillow compilation. If the required library was uninstalled from the system, the pil core module may fail to load instead. Except for jpg, the version number is checked at run-time.

Support for the following codecs can be checked:

  • jpg: (compile time) Libjpeg support, required for JPEG based image formats. Only compile time version number is available.

  • jpg_2000: (compile time) OpenJPEG support, required for JPEG 2000 image formats.

  • zlib: (compile time) Zlib support, required for zlib compressed formats, such as PNG.

  • libtiff: (compile time) LibTIFF support, required for TIFF based image formats.

PIL.features.check_codec(feature)[source]

Checks if a codec is available.

Parameters:

feature – The codec to check for.

Returns:

True if available, False otherwise.

Raises:

ValueError – If the codec is not defined in this version of Pillow.

PIL.features.version_codec(feature)[source]
Parameters:

feature – The codec to check for.

Returns:

The version number as a string, or None if not available. Checked at compile time for jpg, run-time otherwise.

Raises:

ValueError – If the codec is not defined in this version of Pillow.

PIL.features.get_supported_codecs()[source]
Returns:

A list of all supported codecs.

Features

Some of these are only checked during Pillow compilation. If the required library was uninstalled from the system, the relevant module may fail to load instead. Feature version numbers are available only where stated.

Support for the following features can be checked:

  • libjpeg_turbo: (compile time) Whether Pillow was compiled against the libjpeg-turbo version of libjpeg. Compile-time version number is available.

  • transp_webp: Support for transparency in WebP images.

  • webp_mux: (compile time) Support for EXIF data in WebP images.

  • webp_anim: (compile time) Support for animated WebP images.

  • raqm: Raqm library, required for ImageFont.Layout.RAQM in PIL.ImageFont.truetype(). Run-time version number is available for Raqm 0.7.0 or newer.

  • libimagequant: (compile time) ImageQuant quantization support in PIL.Image.Image.quantize(). Run-time version number is available.

  • xcb: (compile time) Support for X11 in PIL.ImageGrab.grab() via the XCB library.

PIL.features.check_feature(feature)[source]

Checks if a feature is available.

Parameters:

feature – The feature to check for.

Returns:

True if available, False if unavailable, None if unknown.

Raises:

ValueError – If the feature is not defined in this version of Pillow.

PIL.features.version_feature(feature)[source]
Parameters:

feature – The feature to check for.

Returns:

The version number as a string, or None if not available.

Raises:

ValueError – If the feature is not defined in this version of Pillow.

PIL.features.get_supported_features()[source]
Returns:

A list of all supported features.