Python Imaging Library
{{Short description|Library for the Python programming language}}
{{Infobox software
| name = Python Imaging Library
| logo =
| screenshot =
| caption =
| collapsible =
| author = Fredrik Lundh
| developer = Secret Labs AB
| released = {{Start date and age|df=yes|1995|}}
| latest release version = 1.1.7
| latest release date = {{Start date and age|2009|11|15}}{{cite web |url=http://www.pythonware.com/products/pil/ |archive-url=https://web.archive.org/web/20201121102218/http://www.pythonware.com/products/pil/ |archive-date=21 November 2020 |title=Python Imaging Library |website=Secret Labs AB |accessdate=December 8, 2013}}
| latest preview version = 1.2a0{{cite web |title=effbot / pil-2009-raclette |url=http://hg.effbot.org/pil-2009-raclette |archive-url=https://web.archive.org/web/20150315041249/http://hg.effbot.org/pil-2009-raclette |archive-date=15 March 2015 |accessdate=December 8, 2013 }}
| latest preview date = {{Start date and age|2011||}}
| frequently updated =
| programming language = Python, C
| operating system =
| platform =
| size =
| language =
| status =
| genre = Library for image processing
| license = Historical Permission Notice and Disclaimer{{cite web |title=Software License |website=Secret Labs AB |url=http://www.pythonware.com/products/pil/license.htm |archive-url=https://web.archive.org/web/20200720222143/http://www.pythonware.com/products/pil/license.htm |archive-date=20 July 2020 |accessdate=December 8, 2013}}
| website = {{url|https://python-pillow.github.io/}}
}}
{{Infobox software
| name = Pillow
| logo =
| screenshot =
| caption =
| collapsible =
| author = Jeffrey A. Clark (Alex)
| developer =
| released = {{Start date and age|df=yes|2010|07|31}}
| latest release version = 11.1.0
| latest release date = {{Start date and age|2025|01|02}}{{cite web | url=https://pillow.readthedocs.io/en/stable/releasenotes/ | title=Release Notes | website=Pillow (PIL Fork) Documentation | access-date=February 5, 2025}}
| frequently updated =
| programming language = Python, C
| operating system =
| platform =
| size =
| language =
| status =
| genre = Library for image processing
| license = Historical Permission Notice and Disclaimer
| website = {{url|https://python-pillow.github.io/}}
}}
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, {{nowrap|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.
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.{{cite web |title=Pillow: a modern fork of PIL |url=http://pillow.readthedocs.org/en/latest/ |accessdate=December 8, 2013}} This fork has been adopted as a replacement for the original PIL in Linux distributions including Debian{{cite web |title=Details of package python-imaging in sid |website=packages.debian.org |publisher=Software in the Public Interest |url=http://packages.debian.org/sid/python-imaging |access-date=December 8, 2013}} and Ubuntu (since 13.04).{{cite web |title=Details of package python-imaging in raring |website=ubuntu.com |publisher=Canonical Ltd. |url=http://packages.ubuntu.com/raring/python/python-imaging |access-date=December 8, 2013}}
Capabilities
PIL offers several standard procedures for image manipulation. These include:
- per-pixel manipulations,{{Cite web |title=PyAccess Module |url=https://pillow.readthedocs.io/en/stable/reference/PyAccess.html |access-date=September 20, 2024 |website=readthedocs.io}}
- masking and transparency handling,
- image filtering, such as blurring, contouring, smoothing, or edge finding,{{Cite web |title=ImageFilter Module |url=https://pillow.readthedocs.io/en/stable/reference/ImageFilter.html |access-date=September 20, 2024 |website=readthedocs.io}}
- image enhancing, such as sharpening, adjusting brightness, contrast or color,{{Cite web |title=ImageColor Module |url=https://pillow.readthedocs.io/en/stable/reference/ImageColor.html |access-date=September 20, 2024 |website=readthedocs.io}}
- adding text
File formats
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
{{reflist}}
External links
- {{Official website|https://web.archive.org/web/20201121102218/http://www.pythonware.com/products/pil/}}
- [https://web.archive.org/web/20200914010747/https://effbot.org/imagingbook/ PIL Library reference]
- {{wikibooks-inline|Python Imaging Library}}
- [https://python-pillow.github.io/ Pillow (Successor project)]
- [https://gethowstuff.com/python-pillow-pil-tutorial-examples/ PIL Tutorial Examples]