Pillow (available as the ‘python-pillow’ package on many Linux kernel-based operating systems) is an open source, multiplatform and freely distributed library software that has been designed from the offset as a drop-in replacement for the deprecated Python Imaging Library (PIL) project.
What is PIL?
The PIL (Python Imaging Library) project has been originally created by Fredrik Lundh to allow Python developers to easily add image processing capabilities to their Python interpreter. It is a Python library that handles different types of image files, and must be used in Python apps that interact with images of any kind.
PIL for Python 3
As the PIL (Python Imaging Library) software hasn’t been updated to the Python 3 programming language, a replacement was needed as soon as possible. And so, the Pillow project was born, forked from PIL but specially engineered for Python 3. It comes with the unique goal of improving the packaging situation from the original PIL library.
At the moment, the project comprises of several modules that allow Python developers to add various image manipulation functions to their programs. In alphabetical order, these are Image, ImageChops, ImageColor, ImageCms, ImageDraw, ImageEnhance, ImageFile, ImageFilter, ImageFont, ImageGrab, ImageMath, ImageMorph, ImageOps, ImagePalette, ImagePath, ImageQt, ImageSequence, ImageStat, ImageTk, ImageWin, ExifTags, OleFileIO and PSDraw.
Supported file formats
Currently, the Pillow library fully supports the BMP, EPS, GIF, IM, JPEG, JFIF, JPEG 2000, MSP, PCX, PNG, PPM, SPIDER, TIFF, WebP, XBM, and XV Thumbnails image file formats. Additionally, it can read the CUR, DCX, FLI, FLC, FPX, GBR, GD, ICO, ICNS, IMT, IPTC/NAA, MCIDAS, MPO, PCD, PSD, SGI, TGA, WAL and XPM image file formats, and write to PALM, PDF and PIXAR file formats. It can also identify the BUFR, FITS, GRIB, HDF5, MPEG and WMF file formats.
Under the hood and supported OSes
As Pillow is a fork of PIL, it is written entirely in the Python programming language. The library supports all GNU/Linux distributions, several BSD flavors, as well as the Microsoft Windows and Mac OS X operating systems. It has been successfully tested with both 64-bit and 32-bit hardware platforms.