Python Imaging Library Explained

Python Imaging Library
Author:Fredrik Lundh
Developer:Secret Labs AB
Latest Release Version:1.1.7
Latest Release Date:[1]
Latest Preview Version:1.2a0[2]
Programming Language:Python, C
Genre:Library for image processing
License:Historical Permission Notice and Disclaimer[3]
Pillow
Author:Jeffrey A. Clark (Alex)
Latest Release Version:10.1.0
Programming Language:Python, C
Genre:Library for image processing
License:Historical Permission Notice and Disclaimer

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, and Linux. The latest version of PIL is 1.1.7, was released in September 2009 and supports Python 1.5.2–2.7.

Development of the original project, known as PIL, was discontinued in 2011. 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]

Capabilities

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

File formats

Supported file formats include PPM, PNG, JPEG, GIF, TIFF, and BMP.PIL is extensible, allowing users to create custom decoders for any file format.[7]

Programming examples

import osfrom PIL import Image

def convert_jpegs_to_pngs(folder_path): # Checks if the provided path is a folder if not os.path.isdir(folder_path): print(f"Error: is not a valid folder.") return

# Iterates over all files in the folder for filename in os.listdir(folder_path): # Checks if the file has a .jpg or .jpeg extension if filename.lower.endswith('.jpg') or filename.lower.endswith('.jpeg'): # Full path of the file jpeg_path = os.path.join(folder_path, filename) # Path for the converted file png_path = os.path.join(folder_path, os.path.splitext(filename)[0] + '.png')

try: # Opens the JPEG image with Image.open(jpeg_path) as img: # Converts and saves as PNG img.save(png_path, 'PNG') print(f"Converted to ") except Exception as e: print(f"Error converting : ")

External links

Notes and References

  1. Web site: Python Imaging Library . https://web.archive.org/web/20201121102218/http://www.pythonware.com/products/pil/ . 21 November 2020 . Secret Labs AB . December 8, 2013.
  2. Web site: effbot / pil-2009-raclette . https://web.archive.org/web/20150315041249/http://hg.effbot.org/pil-2009-raclette . 15 March 2015 . December 8, 2013 .
  3. Web site: Software License . Secret Labs AB . https://web.archive.org/web/20200720222143/http://www.pythonware.com/products/pil/license.htm . 20 July 2020 . December 8, 2013.
  4. Web site: Pillow: a modern fork of PIL . December 8, 2013.
  5. Web site: Details of package python-imaging in sid . packages.debian.org . . December 8, 2013.
  6. Web site: Details of package python-imaging in raring . ubuntu.com . . December 8, 2013.
  7. Web site: D. Writing Your Own File Decoder . Effbot.org . 2014-01-28.