| Python Imaging Library | |
|---|---|
| Original author | Fredrik Lundh |
| Developer | Secret Labs AB |
| Initial release | 1995; 30 years ago (1995)[1] |
| Stable release | |
| Preview release | |
| Written in | Python,C |
| Type | Library forimage processing |
| License | Historical Permission Notice and Disclaimer[1] |
| Website | python-pillow |
| Pillow | |
|---|---|
| Original author | Jeffrey A. Clark (Alex) |
| Initial release | 31 July 2010; 15 years ago (2010-07-31)[1] |
| Stable release | |
| Written in | Python,C |
| Type | Library forimage processing |
| License | Historical Permission Notice and Disclaimer[1] |
| Website | python-pillow |
Python Imaging Library is afree and open-source additionallibrary for thePython programming language that adds support for opening,manipulating, and saving many differentimage file formats. It is available forWindows,Mac OS X andLinux. 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 asPIL, was discontinued in 2011.[2] Subsequently, a successor project namedPillowforked the PIL repository and added Python 3.x support.[5] This fork has been adopted as a replacement for the original PIL inLinux distributions includingDebian[6] andUbuntu (since13.04).[7]
PIL offers several standard procedures for image manipulation. These include:
Supported file formats includePPM,PNG,JPEG,GIF,TIFF, andBMP.PIL is extensible, allowing users to create custom decoders for any file format.[11]
importosfromPILimportImagedefconvert_jpegs_to_pngs(folder_path):# Checks if the provided path is a folderifnotos.path.isdir(folder_path):print(f"Error:{folder_path} is not a valid folder.")return# Iterates over all files in the folderforfilenameinos.listdir(folder_path):# Checks if the file has a .jpg or .jpeg extensioniffilename.lower().endswith(".jpg")orfilename.lower().endswith(".jpeg"):# Full path of the filejpeg_path=os.path.join(folder_path,filename)# Path for the converted filepng_path=os.path.join(folder_path,os.path.splitext(filename)[0]+".png")try:# Opens the JPEG imagewithImage.open(jpeg_path)asimg:# Converts and saves as PNGimg.save(png_path,"PNG")print(f"Converted{jpeg_path} to{png_path}")exceptExceptionase:print(f"Error converting{jpeg_path}:{e}")