Software:Python Imaging Library
| Original author(s) | Fredrik Lundh |
|---|---|
| Developer(s) | Secret Labs AB |
| Initial release | 1995[1] |
| Stable release | 1.1.7
/ November 15, 2009[3] |
| Preview release | 1.2a0[2]
/ 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[1] |
| Stable release | 11.1.0
/ January 2, 2025[4] |
| 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.[5] This fork has been adopted as a replacement for the original PIL in Linux distributions including Debian[6] and Ubuntu (since 13.04).[7]
Capabilities
PIL offers several standard procedures for image manipulation. These include:
- per-pixel manipulations,[8]
- masking and transparency handling,
- image filtering, such as blurring, contouring, smoothing, or edge finding,[9]
- image enhancing, such as sharpening, adjusting brightness, contrast or color,[10]
- 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.[11]
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
- ↑ 1.0 1.1 1.2 1.3 "Software License". http://www.pythonware.com/products/pil/license.htm. Retrieved December 8, 2013.
- ↑ 2.0 2.1 "effbot / pil-2009-raclette". http://hg.effbot.org/pil-2009-raclette. Retrieved December 8, 2013.
- ↑ 3.0 3.1 "Python Imaging Library". http://www.pythonware.com/products/pil/. Retrieved December 8, 2013.
- ↑ "Release Notes". https://pillow.readthedocs.io/en/stable/releasenotes/.
- ↑ "Pillow: a modern fork of PIL". https://pillow.readthedocs.org/en/latest/. Retrieved December 8, 2013.
- ↑ "Details of package python-imaging in sid". Software in the Public Interest. http://packages.debian.org/sid/python-imaging.
- ↑ "Details of package python-imaging in raring". Canonical Ltd.. https://packages.ubuntu.com/raring/python/python-imaging.
- ↑ "PyAccess Module". https://pillow.readthedocs.io/en/stable/reference/PyAccess.html.
- ↑ "ImageFilter Module". https://pillow.readthedocs.io/en/stable/reference/ImageFilter.html.
- ↑ "ImageColor Module". https://pillow.readthedocs.io/en/stable/reference/ImageColor.html.
- ↑ "D. Writing Your Own File Decoder". Effbot.org. http://effbot.org/imagingbook/decoder.htm. Retrieved 2014-01-28.
External links
- Official website
- PIL Library reference
Python Imaging Library at Wikibooks- Pillow (Successor project)
- PIL Tutorial Examples
