Python Imaging Library
Original author(s) | Fredrik Lundh |
---|---|
Developer(s) | Secret Labs AB |
Initial release | 1995; 29 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; 13 years ago (2011) |
Written in | Python, C |
Type | Library for image processing |
License | Historical Permission Notice and Disclaimer[1] |
Website | python-pillow |
Original author(s) | Jeffrey A. Clark (Alex) |
---|---|
Initial release | 31 July 2010; 14 years ago (2010-07-31)[1] |
Stable release | 10.1.0 / October 15, 2023; 11 months ago (2023-10-15) |
Written in | Python, C |
Type | Library for image processing |
License | Historical Permission Notice and Disclaimer[1] |
Website | python-pillow |
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]
Capabilities
PIL offers several standard procedures for image manipulation. These include:
- per-pixel manipulations[7],
- masking and transparency handling,
- image filtering, such as blurring, contouring, smoothing, or edge finding[8],
- image enhancing, such as sharpening, adjusting brightness, contrast or color[9],
- adding text
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.[10]
Programming examples
import os from 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: {folder_path} 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 {jpeg_path} to {png_path}") except Exception as e: print(f"Error converting {jpeg_path}: {e}")
References
- ^ a b c d "Software License". Secret Labs AB. Archived from the original on 20 July 2020. Retrieved December 8, 2013.
- ^ a b "effbot / pil-2009-raclette". Archived from the original on 15 March 2015. Retrieved December 8, 2013.
- ^ a b "Python Imaging Library". Secret Labs AB. Archived from the original on 21 November 2020. Retrieved December 8, 2013.
- ^ "Pillow: a modern fork of PIL". Retrieved December 8, 2013.
- ^ "Details of package python-imaging in sid". packages.debian.org. Software in the Public Interest. Retrieved December 8, 2013.
- ^ "Details of package python-imaging in raring". ubuntu.com. Canonical Ltd. Retrieved December 8, 2013.
- ^ "PyAccess Module". readthedocs.io. Retrieved September 20, 2024.
- ^ "ImageFilter Module". readthedocs.io. Retrieved September 20, 2024.
{{cite web}}
: CS1 maint: url-status (link) - ^ "ImageColor Module". readthedocs.io. Retrieved September 20, 2024.
{{cite web}}
: CS1 maint: url-status (link) - ^ "D. Writing Your Own File Decoder". Effbot.org. Retrieved 2014-01-28.
External links
- Official website
- PIL Library reference
- Python Imaging Library at Wikibooks
- Pillow (Successor project)
- PIL Tutorial Examples