Python Imaging Library

From Wikipedia, the free encyclopedia
Python Imaging Library
Original author(s)Fredrik Lundh
Developer(s)Secret Labs AB
Initial release1995; 28 years ago (1995)[1]
Stable release
1.1.7 / November 15, 2009; 14 years ago (2009-11-15)[3]
Preview release
1.2a0[2] / 2011; 12 years ago (2011)
Written inPython, C
TypeLibrary for image processing
LicenseHistorical Permission Notice and Disclaimer[1] Edit this on Wikidata
Original author(s)Jeffrey A. Clark (Alex)
Initial release31 July 2010; 13 years ago (2010-07-31)[1]
Stable release
10.1.0 / October 15, 2023; 41 days ago (2023-10-15)
Written inPython, C
TypeLibrary for image processing
LicensePython Imaging Library license[1]

Python Imaging Library is a free and open-source additional library for the Python programming language that adds support for opening, manipulating, and saving many different image file formats. It is available for Windows, Mac OS X and Linux. The latest version of PIL is 1.1.7, was released in September 2009 and supports Python 1.5.2–2.7.[3]

Development of the original project, known as PIL, was discontinued in 2011.[2] Subsequently, a successor project named Pillow forked the PIL repository and added Python 3.x support.[4] This fork has been adopted as a replacement for the original PIL in Linux distributions including Debian[5] and Ubuntu (since 13.04).[6]


PIL offers several standard procedures for image manipulation. These include:

  • per-pixel manipulations,
  • masking and transparency handling,
  • image filtering, such as blurring, contouring, smoothing, or edge finding,
  • image enhancing, such as sharpening, adjusting brightness, contrast or color,
  • adding text to images and much more.

File formats[edit]

Some of the file formats supported are PPM, PNG, JPEG, GIF, TIFF, and BMP. It is also possible to create new file decoders to expand the library of file formats accessible.[7]

Example of use[edit]

This example loads an image from the file system, blurs it, and shows both the original and the blurred image on the screen:

from PIL import Image, ImageFilter  # Import classes from the library.

original_image ="file.ppm")  # Load an image from the file system.
blurred_image = original_image.filter(ImageFilter.BLUR)  # Blur the image.

# Display both images.

This example loads and rotates an image by 180 degrees:

from PIL import Image  # Import Image class from the library.

image ="file.jpg")  # Load the image.
rotated_image = image.rotate(180)  # Rotate the image by 180 degrees."file_rotated.jpg")  # Save the rotated image.

This example loads and crops an image:

from PIL import Image  # Import Image class from library.

image ="example.jpg")  # Load image.
cropped_image = image.crop((100, 100, 250, 250))  # Crop the image."example_cropped.jpg")  # Save the image.


The Python Imaging Library (PIL) is

 Copyright © 1997-2011 by Secret Labs AB
 Copyright © 1995-2011 by Fredrik Lundh

Based on [1]


  1. ^ a b c d "Software License". Secret Labs AB. Archived from the original on 20 July 2020. Retrieved December 8, 2013.
  2. ^ a b "effbot / pil-2009-raclette". Archived from the original on 15 March 2015. Retrieved December 8, 2013.
  3. ^ a b "Python Imaging Library". Secret Labs AB. Archived from the original on 21 November 2020. Retrieved December 8, 2013.
  4. ^ "Pillow: a modern fork of PIL". Retrieved December 8, 2013.
  5. ^ "Details of package python-imaging in sid". Software in the Public Interest. Retrieved December 8, 2013.
  6. ^ "Details of package python-imaging in raring". Canonical Ltd. Retrieved December 8, 2013.
  7. ^ "D. Writing Your Own File Decoder". Retrieved 2014-01-28.

External links[edit]